diff options
author | Harald Anlauf <anlauf@gmx.de> | 2022-09-20 22:23:43 +0200 |
---|---|---|
committer | Harald Anlauf <anlauf@gmx.de> | 2022-09-20 22:23:43 +0200 |
commit | 8dbb15bc2d019488240c1e69d93121b0347ac092 (patch) | |
tree | 94a99d153924b03df72ee6d2b49fab04a508d7ad /gcc/fortran/expr.cc | |
parent | c77f556741ded4aa868f851ea32f9732602b0ea9 (diff) | |
download | gcc-8dbb15bc2d019488240c1e69d93121b0347ac092.zip gcc-8dbb15bc2d019488240c1e69d93121b0347ac092.tar.gz gcc-8dbb15bc2d019488240c1e69d93121b0347ac092.tar.bz2 |
Fortran: NULL pointer dereference in invalid simplification [PR106985]
gcc/fortran/ChangeLog:
PR fortran/106985
* expr.cc (gfc_simplify_expr): Avoid NULL pointer dereference.
gcc/testsuite/ChangeLog:
PR fortran/106985
* gfortran.dg/pr106985.f90: New test.
Diffstat (limited to 'gcc/fortran/expr.cc')
-rw-r--r-- | gcc/fortran/expr.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/expr.cc b/gcc/fortran/expr.cc index be94c18..290ddf3 100644 --- a/gcc/fortran/expr.cc +++ b/gcc/fortran/expr.cc @@ -2287,7 +2287,8 @@ gfc_simplify_expr (gfc_expr *p, int type) initialization expression, or we want a subsection. */ if (p->symtree->n.sym->attr.flavor == FL_PARAMETER && (gfc_init_expr_flag || p->ref - || p->symtree->n.sym->value->expr_type != EXPR_ARRAY)) + || (p->symtree->n.sym->value + && p->symtree->n.sym->value->expr_type != EXPR_ARRAY))) { if (!simplify_parameter_variable (p, type)) return false; |