]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR fortran/77694 (ICE in optimize_binop_array_assignment, at fortran...
authorSteven G. Kargl <kargl@gcc.gnu.org>
Wed, 28 Sep 2016 23:38:13 +0000 (23:38 +0000)
committerSteven G. Kargl <kargl@gcc.gnu.org>
Wed, 28 Sep 2016 23:38:13 +0000 (23:38 +0000)
2016-09-28  Steven G. Kargl  <kargl@gcc.gnu.org>

backport from trunk
PR fortran/77694
* frontend-passes.c (optimize_binop_array_assignment): Check pointer
for NULL.

2016-09-28  Steven G. Kargl  <kargl@gcc.gnu.org>

backport from trunk
PR fortran/77694
* gfortran.dg/pr77694.f90: New test.

From-SVN: r240604

gcc/fortran/ChangeLog
gcc/fortran/frontend-passes.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr77694.f90 [new file with mode: 0644]

index 97f05b3119fd04c460cca41c81fcf019e47364ba..03603d5ed4fdde59678d99c16450e380382ed75e 100644 (file)
@@ -1,3 +1,10 @@
+2016-09-28  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       backport from trunk
+       PR fortran/77694
+       * frontend-passes.c (optimize_binop_array_assignment): Check pointer
+       for NULL.
+
 2016-08-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        Backport from trunk
index f3e2e675a15aca284c125fd559391d26a9383182..c521b0a78dabeb429dd9fa249b93c6944e43fc7e 100644 (file)
@@ -1015,6 +1015,9 @@ optimize_binop_array_assignment (gfc_code *c, gfc_expr **rhs, bool seen_op)
 {
   gfc_expr *e;
 
+  if (!*rhs)
+    return false;
+
   e = *rhs;
   if (e->expr_type == EXPR_OP)
     {
index 9f5cac1d79110e1142b9c822cac30d1c36872a16..ea7198a0ad4c40db3fae21a13a7fc2145816980f 100644 (file)
@@ -1,3 +1,9 @@
+2016-09-28  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       backport from trunk
+       PR fortran/77694
+       * gfortran.dg/pr77694.f90: New test.
+
 2016-09-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
        backport from mainline
diff --git a/gcc/testsuite/gfortran.dg/pr77694.f90 b/gcc/testsuite/gfortran.dg/pr77694.f90
new file mode 100644 (file)
index 0000000..d9dc01b
--- /dev/null
@@ -0,0 +1,7 @@
+! { dg-do compile }
+! { dg-options -O }
+program p
+   logical x(2), y(2)
+   x = .true.
+   y = .nt. x   ! { dg-error "Unknown operator" }
+end