[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228 kargl at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |7.5 --- Comment #7 from kargl at gcc dot gnu.org --- Fixed on trunk, branch-8, and branch-7.
[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228 --- Comment #6 from kargl at gcc dot gnu.org --- Author: kargl Date: Sun Dec 9 18:32:01 2018 New Revision: 266928 URL: https://gcc.gnu.org/viewcvs?rev=266928&root=gcc&view=rev Log: 2018-12-09 Fritz Reese PR fortran/88228 * resolve.c (resolve_operator): Do not call resolve_function. Break like other cases. 2018-12-09 Steven G. Kargl PR fortran/88228 * gfortran.dg/pr88228.f90: New test. Added: branches/gcc-7-branch/gcc/testsuite/gfortran.dg/pr88228.f90 Modified: branches/gcc-7-branch/gcc/fortran/ChangeLog branches/gcc-7-branch/gcc/fortran/resolve.c branches/gcc-7-branch/gcc/testsuite/ChangeLog
[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228 --- Comment #5 from kargl at gcc dot gnu.org --- Author: kargl Date: Sun Dec 9 17:09:15 2018 New Revision: 266927 URL: https://gcc.gnu.org/viewcvs?rev=266927&root=gcc&view=rev Log: 2018-12-09 Fritz Reese PR fortran/88228 * resolve.c (resolve_operator): Do not call resolve_function. Break like other cases. 2018-12-09 Steven G. Kargl PR fortran/88228 * gfortran.dg/pr88228.f90: New test. Added: branches/gcc-8-branch/gcc/testsuite/gfortran.dg/pr88228.f90 Modified: branches/gcc-8-branch/gcc/fortran/ChangeLog branches/gcc-8-branch/gcc/fortran/resolve.c branches/gcc-8-branch/gcc/testsuite/ChangeLog
[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228 --- Comment #4 from kargl at gcc dot gnu.org --- Author: kargl Date: Sun Dec 9 16:32:48 2018 New Revision: 266926 URL: https://gcc.gnu.org/viewcvs?rev=266926&root=gcc&view=rev Log: 2018-12-09 Fritz Reese PR fortran/88228 * resolve.c (resolve_operator): Do not call resolve_function. Break like other cases. 2018-12-09 Steven G. Kargl PR fortran/88228 * gfortran.dg/pr88228.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/pr88228.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228 kargl at gcc dot gnu.org changed: What|Removed |Added CC||kargl at gcc dot gnu.org --- Comment #3 from kargl at gcc dot gnu.org --- (In reply to kargl from comment #2) > Index: gcc/fortran/expr.c > === > --- gcc/fortran/expr.c(revision 266386) > +++ gcc/fortran/expr.c(working copy) > @@ -2688,6 +2688,9 @@ check_transformational (gfc_expr *e) > static match > check_null (gfc_expr *e) > { > + if (e->expr_type == EXPR_CONSTANT) > + return MATCH_NO; > + >if (strcmp ("null", e->symtree->n.sym->name) != 0) > return MATCH_NO; > > @@ -2793,10 +2796,15 @@ gfc_check_init_expr (gfc_expr *e) > && (m = check_transformational (e)) == MATCH_NO > && (m = check_elemental (e)) == MATCH_NO) > { > - gfc_error ("Intrinsic function %qs at %L is not permitted " > -"in an initialization expression", > -e->symtree->n.sym->name, &e->where); > - m = MATCH_ERROR; > + if (e->expr_type == EXPR_CONSTANT) > + return true; > + else > + { > + gfc_error ("Intrinsic function %qs at %L is not permitted " > +"in an initialization expression", > +e->symtree->n.sym->name, &e->where); > + m = MATCH_ERROR; > + } > } > > if (m == MATCH_ERROR) Patch is insufficient new patch is sitting my tree.
[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228 --- Comment #2 from kargl at gcc dot gnu.org --- Index: gcc/fortran/expr.c === --- gcc/fortran/expr.c (revision 266386) +++ gcc/fortran/expr.c (working copy) @@ -2688,6 +2688,9 @@ check_transformational (gfc_expr *e) static match check_null (gfc_expr *e) { + if (e->expr_type == EXPR_CONSTANT) + return MATCH_NO; + if (strcmp ("null", e->symtree->n.sym->name) != 0) return MATCH_NO; @@ -2793,10 +2796,15 @@ gfc_check_init_expr (gfc_expr *e) && (m = check_transformational (e)) == MATCH_NO && (m = check_elemental (e)) == MATCH_NO) { - gfc_error ("Intrinsic function %qs at %L is not permitted " - "in an initialization expression", - e->symtree->n.sym->name, &e->where); - m = MATCH_ERROR; + if (e->expr_type == EXPR_CONSTANT) + return true; + else + { + gfc_error ("Intrinsic function %qs at %L is not permitted " + "in an initialization expression", + e->symtree->n.sym->name, &e->where); + m = MATCH_ERROR; + } } if (m == MATCH_ERROR)
[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228 Dominique d'Humieres changed: What|Removed |Added Keywords||ice-on-invalid-code Priority|P3 |P4 Status|UNCONFIRMED |NEW Last reconfirmed||2018-11-27 CC||foreese at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Dominique d'Humieres --- Confirmed.