[Bug fortran/71861] [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71861 janus at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #13 from janus at gcc dot gnu.org --- Fixed on trunk and the 7 and 8 branches. Closing.
[Bug fortran/71861] [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71861 --- Comment #12 from janus at gcc dot gnu.org --- Author: janus Date: Mon Mar 25 19:58:04 2019 New Revision: 269922 URL: https://gcc.gnu.org/viewcvs?rev=269922=gcc=rev Log: fix PR 71861 2019-03-25 Janus Weil PR fortran/71861 * symbol.c (check_conflict): ABSTRACT attribute conflicts with INTRINSIC attribute. 2019-03-25 Janus Weil PR fortran/71861 * gfortran.dg/interface_abstract_5.f90: New test case. Added: branches/gcc-7-branch/gcc/testsuite/gfortran.dg/interface_abstract_5.f90 Modified: branches/gcc-7-branch/gcc/fortran/ChangeLog branches/gcc-7-branch/gcc/fortran/symbol.c branches/gcc-7-branch/gcc/testsuite/ChangeLog
[Bug fortran/71861] [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71861 --- Comment #11 from janus at gcc dot gnu.org --- Author: janus Date: Sun Mar 24 18:08:10 2019 New Revision: 269898 URL: https://gcc.gnu.org/viewcvs?rev=269898=gcc=rev Log: fix PR 71861 2019-03-24 Janus Weil PR fortran/71861 * symbol.c (check_conflict): ABSTRACT attribute conflicts with INTRINSIC attribute. 2019-03-24 Janus Weil PR fortran/71861 * gfortran.dg/interface_abstract_5.f90: New test case. Added: branches/gcc-8-branch/gcc/testsuite/gfortran.dg/interface_abstract_5.f90 Modified: branches/gcc-8-branch/gcc/fortran/ChangeLog branches/gcc-8-branch/gcc/fortran/symbol.c branches/gcc-8-branch/gcc/testsuite/ChangeLog
[Bug fortran/71861] [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71861 --- Comment #10 from janus at gcc dot gnu.org --- Author: janus Date: Wed Mar 20 21:32:23 2019 New Revision: 269827 URL: https://gcc.gnu.org/viewcvs?rev=269827=gcc=rev Log: fix PR 71861 2019-03-20 Janus Weil PR fortran/71861 * symbol.c (check_conflict): ABSTRACT attribute conflicts with INTRINSIC attribute. 2019-03-20 Janus Weil PR fortran/71861 * gfortran.dg/interface_abstract_5.f90: New test case. Added: trunk/gcc/testsuite/gfortran.dg/interface_abstract_5.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/symbol.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/71861] [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71861 janus at gcc dot gnu.org changed: What|Removed |Added Keywords|ice-on-valid-code |ice-on-invalid-code --- Comment #9 from janus at gcc dot gnu.org --- (In reply to janus from comment #8) > I'm about to regtest this ... No failures observed.
[Bug fortran/71861] [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71861 janus at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |janus at gcc dot gnu.org --- Comment #8 from janus at gcc dot gnu.org --- (In reply to kargl from comment #7) > Does Note 15.2 in F2018 apply? > >An interface body cannot be used to describe the interface of an >internal procedure, a module procedure that is not a separate module >procedure, or an intrinsic procedure because the interfaces of such >procedures are already explicit. However, the name of a procedure >can appear in a PROCEDURE statement in an interface block (15.4.3.2). Probably yes. In any case, the test cases are rejected with an INTERFACE that is not ABSTRACT: Error: EXTERNAL attribute conflicts with INTRINSIC attribute at (1) With an ABSTRACT INTERFACE, they can be rejected via: diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index c342d62ead1..ec753229a98 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -557,6 +557,7 @@ check_conflict (symbol_attribute *attr, const char *name, locus *where) conf (external, intrinsic); conf (entry, intrinsic); + conf (abstract, intrinsic); if ((attr->if_source == IFSRC_DECL && !attr->procedure) || attr->contained) conf (external, subroutine); I'm about to regtest this ...
[Bug fortran/71861] [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71861 kargl at gcc dot gnu.org changed: What|Removed |Added CC||kargl at gcc dot gnu.org --- Comment #7 from kargl at gcc dot gnu.org --- (In reply to Thomas Koenig from comment #6) > > module m > >intrinsic abs > >abstract interface > > function abs(x) > > real :: abs, x > > end > >end interface > > end > > I cannot tell if this is legal or not. How should the compiler > behave? Does Note 15.2 in F2018 apply? An interface body cannot be used to describe the interface of an internal procedure, a module procedure that is not a separate module procedure, or an intrinsic procedure because the interfaces of such procedures are already explicit. However, the name of a procedure can appear in a PROCEDURE statement in an interface block (15.4.3.2).
[Bug fortran/71861] [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71861 Thomas Koenig changed: What|Removed |Added CC||tkoenig at gcc dot gnu.org --- Comment #6 from Thomas Koenig --- > module m >intrinsic abs >abstract interface > function abs(x) > real :: abs, x > end >end interface > end I cannot tell if this is legal or not. How should the compiler behave?
[Bug fortran/71861] [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71861 Richard Biener changed: What|Removed |Added Target Milestone|7.4 |7.5