This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/52024] [OOP] GENERIC operator cannot be resolved


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52024

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-01-28
                 CC|                            |burnus at gcc dot gnu.org
     Ever Confirmed|0                           |1

--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-01-28 09:38:52 UTC ---
It works if one uses the very similar:

interface operator (==)
  module procedure t_equal_i
  module procedure i_equal_t
end interface


While for GENERIC, one calls in resolve.c's check_generic_tbp_ambiguity:
  if (gfc_compare_interfaces (sym1, sym2, sym2->name, 1, 0, NULL, 0))

The INTERFACE is checked via interface.c's "gfc_check_interfaces (gfc_namespace
*ns)", which calls "check_interface1" for the actual check.


Note that the current ambiguity check fails to diagnose ambiguity between
GENERIC and INTERFACE, cf. PR 41951. Which might be fixed at the same time.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]