diff options
author | Harald Anlauf <anlauf@gmx.de> | 2021-12-14 21:57:04 +0100 |
---|---|---|
committer | Harald Anlauf <anlauf@gmx.de> | 2021-12-14 21:57:04 +0100 |
commit | ca39102e10643a6b3f07d06934cc0907ba83d9ee (patch) | |
tree | e50b0a7706b76635fc12457406a66e65da46c6bd /gcc/fortran/frontend-passes.c | |
parent | e866e1c92ecf88feeeafd5d55348451c9a181f3c (diff) | |
download | gcc-ca39102e10643a6b3f07d06934cc0907ba83d9ee.zip gcc-ca39102e10643a6b3f07d06934cc0907ba83d9ee.tar.gz gcc-ca39102e10643a6b3f07d06934cc0907ba83d9ee.tar.bz2 |
Fortran: prevent NULL pointer dereference in check of passed do-loop variable
gcc/fortran/ChangeLog:
PR fortran/103717
* frontend-passes.c (doloop_code): Prevent NULL pointer
dereference when checking for passing a do-loop variable to a
contained procedure with an interface mismatch.
gcc/testsuite/ChangeLog:
PR fortran/103717
* gfortran.dg/do_check_19.f90: New test.
Diffstat (limited to 'gcc/fortran/frontend-passes.c')
-rw-r--r-- | gcc/fortran/frontend-passes.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c index c106ee0..6ffe072 100644 --- a/gcc/fortran/frontend-passes.c +++ b/gcc/fortran/frontend-passes.c @@ -2653,7 +2653,7 @@ doloop_code (gfc_code **c, int *walk_subtrees ATTRIBUTE_UNUSED, do_sym = cl->ext.iterator->var->symtree->n.sym; - if (a->expr && a->expr->symtree + if (a->expr && a->expr->symtree && f->sym && a->expr->symtree->n.sym == do_sym) { if (f->sym->attr.intent == INTENT_OUT) |