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/61527] [4.9/4.10 Regression] class/extends, multiple generic assignment, accept invalid


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |accepts-invalid
                 CC|                            |burnus at gcc dot gnu.org
   Target Milestone|---                         |4.9.2
            Summary|class/extends, multiple     |[4.9/4.10 Regression]
                   |generic assignment, accept  |class/extends, multiple
                   |invalid                     |generic assignment, accept
                   |                            |invalid

--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> ---
It seems to be due to the following code in interface.c, which was added for
PR57530 in r201329:

compare_type (gfc_symbol *s1, gfc_symbol *s2)
{
  if (s2->attr.ext_attr & (1 << EXT_ATTR_NO_ARG_CHECK))
    return 1;

  /* TYPE and CLASS of the same declared type are type compatible,
     but have different characteristics.  */
  if ((s1->ts.type == BT_CLASS && s2->ts.type == BT_DERIVED)
      || (s1->ts.type == BT_DERIVED && s2->ts.type == BT_CLASS))
    return 0;


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