PR# 19490 Object-test with expression of type POINTER

Problem Report Summary
Submitter: gobobe
Category: Compiler
Priority: High
Date: 2018/11/01
Class: Bug
Severity: Critical
Number: 19490
Confidential: No
Status: Closed
Environment: win
Synopsis: Object-test with expression of type POINTER

The following code:

     if attached {REAL_64} default_pointer as r then

is accepted by the Eiffel compiler as expected, but the C compilation (using msc_v14) fails with this error:

    c:\gobo\eifgens\gepp\w_code\c4\ge119.c(87): error C2440: '=': cannot convert from 'EIF_POINTER' to 'EIF_REAL_64'

Of course this is an example that I made up. In my real program, the problem appears in a generic class where `default_pointer' is replaced by an argument of type G, and the corresponding actual generic parameters of this class include POINTER (among other types).

Eric Bezault
To Reproduce

Problem Report Interactions
From:alexk_es    Date:2018/11/03    Status: Closed    Download   
Fixed in rev#102397 of EiffelStudio 18.11 intermediate release.

From:alexk_es    Date:2018/11/02    Status: Analyzed    Download   
Added test#ccomp091.