https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80467

--- Comment #6 from Harald Anlauf <anlauf at gmx dot de> ---
The code is properly rejected e.g. by the Intel compiler:


pr80467.f90(16): error #6423: This name has already been used as an external
function name.   [GETVALUE]
        compareTo = GetValue
--------------------^
pr80467.f90(18): error #8497: Illegal use of a procedure name in an expression,
possibly a function call missing parenthesis.   [GETVALUE]
            if(Real(i) > GetValue) Then
-------------------------^
compilation aborted for pr80467.f90 (code 1)

or by the Sun compiler:


        compareTo = GetValue
                    ^        
"pr80467.f90", Line = 16, Column = 21: ERROR: This reference to function
GETVALUE without an actual argument list is illegal.

            if(Real(i) > GetValue) Then
                         ^              
"pr80467.f90", Line = 18, Column = 26: ERROR: This reference to function
GETVALUE without an actual argument list is illegal.

f90comp: 32 SOURCE LINES
f90comp: 2 ERRORS, 0 WARNINGS, 0 OTHER MESSAGES, 0 ANSI


Thus: ICE on invalid code.

Personal recommendation: always use multiple compilers for enhanced checking
during code development.

Reply via email to