http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55199
Bug #: 55199
Summary: Equivalenced variable has wrong type when used with
generic member function
Classification: Unclassified
Product: gcc
Version: 4.7.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: [email protected]
ReportedBy: [email protected]
Created attachment 28606
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28606
Test program to reproduce the error
The attached program fails to compile, with the following error:
assoc_err.f90:49.8:
a = a + b
1
Error: Operands of binary numeric operator '+' at (1) are REAL(4)/TYPE(foo_t)
However, the equivalence statement has b => f%func(1.), which has a type of
REAL(4) and not TYPE(foo_t).
The problem goes away if I replace the generic function reference with a
specific one: b => f%func_1(1.)