diff options
author | Harald Anlauf <anlauf@gmx.de> | 2021-11-29 22:56:30 +0100 |
---|---|---|
committer | Harald Anlauf <anlauf@gmx.de> | 2021-11-30 20:20:56 +0100 |
commit | 36421e76a7150621f2a5c7060ddd3f80aa825a40 (patch) | |
tree | fccabb72616b12892788d5ad4eae573d02e218f5 /gcc/fortran/simplify.c | |
parent | 814f52a8bfc66aff8c453b040f0e730b034b7f52 (diff) | |
download | gcc-36421e76a7150621f2a5c7060ddd3f80aa825a40.zip gcc-36421e76a7150621f2a5c7060ddd3f80aa825a40.tar.gz gcc-36421e76a7150621f2a5c7060ddd3f80aa825a40.tar.bz2 |
Fortran: error recovery when simplifying MINLOC/MAXLOC
gcc/fortran/ChangeLog:
PR fortran/103473
* simplify.c (simplify_minmaxloc_nodim): Avoid NULL pointer
dereference when shape is not set.
gcc/testsuite/ChangeLog:
PR fortran/103473
* gfortran.dg/minmaxloc_15.f90: New test.
Diffstat (limited to 'gcc/fortran/simplify.c')
-rw-r--r-- | gcc/fortran/simplify.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index c9e13b5..fb7b781 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -5280,6 +5280,9 @@ simplify_minmaxloc_nodim (gfc_expr *result, gfc_expr *extremum, && !mask->value.logical) goto finish; + if (array->shape == NULL) + goto finish; + for (i = 0; i < array->rank; i++) { count[i] = 0; |