aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/expr.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/parameter_array_error_1.f907
4 files changed, 19 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 0fc9d97..835ef4e 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2019-04-03 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/68567
+ * expr.c (gfc_reduce_init_expr): Add extra check to avoid
+ dereferencing a null pointer.
+
2019-04-03 Dominique d'Humieres <dominiq@gcc.gnu.org>
PR fortran/89375
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 47ec35f..3b46b4e 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -3003,7 +3003,7 @@ gfc_reduce_init_expr (gfc_expr *expr)
t = gfc_check_init_expr (expr);
gfc_init_expr_flag = false;
- if (!t)
+ if (!t || !expr)
return false;
if (expr->expr_type == EXPR_ARRAY)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fd16b92..bbf96bf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-04-03 Dominique d'Humieres <dominiq@gcc.gnu.org>
+
+ PR fortran/68567
+ * gfortran.dg/parameter_array_error_1.f90: New test.
+
2019-04-03 qing zhao <qing.zhao@oracle.com>
PR tree-optimization/89730
diff --git a/gcc/testsuite/gfortran.dg/parameter_array_error_1.f90 b/gcc/testsuite/gfortran.dg/parameter_array_error_1.f90
new file mode 100644
index 0000000..eebdd29
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/parameter_array_error_1.f90
@@ -0,0 +1,7 @@
+! { dg-do compile }
+! PR68567
+! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fortran@t-online.de>
+!
+program p
+ integer, parameter :: a(:) = [2, 1] ! { dg-error "cannot be automatic or of deferred shape" }
+end