[Bug fortran/104554] ICE in check_assumed_size_reference, at fortran/resolve.cc:1650
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104554 anlauf at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |12.3 Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #6 from anlauf at gcc dot gnu.org --- Fixed on mainline for gcc-13, and on 12-branch. Given comment#2 this might be ok and not worth backporting further.
[Bug fortran/104554] ICE in check_assumed_size_reference, at fortran/resolve.cc:1650
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104554 --- Comment #5 from CVS Commits --- The releases/gcc-12 branch has been updated by Harald Anlauf : https://gcc.gnu.org/g:e2c6bc6bb5628bb51b56d1da3f9907ae45a3a01b commit r12-9179-ge2c6bc6bb5628bb51b56d1da3f9907ae45a3a01b Author: Steve Kargl Date: Wed Feb 15 22:20:22 2023 +0100 Fortran: error recovery on invalid assumed size reference [PR104554] gcc/fortran/ChangeLog: PR fortran/104554 * resolve.cc (check_assumed_size_reference): Avoid NULL pointer dereference. gcc/testsuite/ChangeLog: PR fortran/104554 * gfortran.dg/pr104554.f90: New test. (cherry picked from commit a418129273725fd02e881e6fb5e0877287a1356c)
[Bug fortran/104554] ICE in check_assumed_size_reference, at fortran/resolve.cc:1650
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104554 --- Comment #4 from CVS Commits --- The master branch has been updated by Harald Anlauf : https://gcc.gnu.org/g:a418129273725fd02e881e6fb5e0877287a1356c commit r13-6066-ga418129273725fd02e881e6fb5e0877287a1356c Author: Steve Kargl Date: Wed Feb 15 22:20:22 2023 +0100 Fortran: error recovery on invalid assumed size reference [PR104554] gcc/fortran/ChangeLog: PR fortran/104554 * resolve.cc (check_assumed_size_reference): Avoid NULL pointer dereference. gcc/testsuite/ChangeLog: PR fortran/104554 * gfortran.dg/pr104554.f90: New test.
[Bug fortran/104554] ICE in check_assumed_size_reference, at fortran/resolve.cc:1650
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104554 anlauf at gcc dot gnu.org changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |anlauf at gcc dot gnu.org Status|NEW |ASSIGNED CC||anlauf at gcc dot gnu.org --- Comment #3 from anlauf at gcc dot gnu.org --- Will commit Steve's patch as obvious.
[Bug fortran/104554] ICE in check_assumed_size_reference, at fortran/resolve.cc:1650
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104554 Martin Liška changed: What|Removed |Added CC||marxin at gcc dot gnu.org, ||pault at gcc dot gnu.org --- Comment #2 from Martin Liška --- I think it started with r12-570-ga2c593009fef1564.
[Bug fortran/104554] ICE in check_assumed_size_reference, at fortran/resolve.cc:1650
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104554 kargl at gcc dot gnu.org changed: What|Removed |Added CC||kargl at gcc dot gnu.org Status|UNCONFIRMED |NEW Last reconfirmed||2022-02-15 Priority|P3 |P4 Ever confirmed|0 |1 --- Comment #1 from kargl at gcc dot gnu.org --- NULL pointer dereference. diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc index 835a4783718..51162455cbb 100644 --- a/gcc/fortran/resolve.cc +++ b/gcc/fortran/resolve.cc @@ -1647,7 +1647,9 @@ check_assumed_size_reference (gfc_symbol *sym, gfc_expr *e) /* FIXME: The comparison "e->ref->u.ar.type == AR_FULL" is wrong. What should it be? */ - if (e->ref && (e->ref->u.ar.end[e->ref->u.ar.as->rank - 1] == NULL) + if (e->ref + && e->ref->u.ar.as + && (e->ref->u.ar.end[e->ref->u.ar.as->rank - 1] == NULL) && (e->ref->u.ar.as->type == AS_ASSUMED_SIZE) && (e->ref->u.ar.type == AR_FULL)) {