]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/78279 (ICE in identical_array_ref, at fortran/dependency.c:104)
authorSteven G. Kargl <kargl@gcc.gnu.org>
Thu, 1 Dec 2016 21:28:41 +0000 (21:28 +0000)
committerSteven G. Kargl <kargl@gcc.gnu.org>
Thu, 1 Dec 2016 21:28:41 +0000 (21:28 +0000)
2016-12-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/78279
* dependency.c (identical_array_ref): Convert gcc_assert to conditional
and gfc_internal_error.

2016-12-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/78279
* gfortran.dg/pr78279.f90: New test.

From-SVN: r243134

gcc/fortran/ChangeLog
gcc/fortran/dependency.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr78279.f90 [new file with mode: 0644]

index f0f3107af93ece6c009ddc71f18ab1f9a7bfb7b5..26eb9d60dc591160553cbc942ed3d5cf5d64058b 100644 (file)
@@ -1,3 +1,9 @@
+2016-12-01  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/78279
+       * dependency.c (identical_array_ref): Convert gcc_assert to conditional
+       and gfc_internal_error.
+
 2016-11-24  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        PR fortran/78500
index 37adcc1b9b6f4c6cf9d310ae984f4138c62c38ad..233ba7e60ab823aacd7fd47b0285c1be650e5e1c 100644 (file)
@@ -102,7 +102,9 @@ identical_array_ref (gfc_array_ref *a1, gfc_array_ref *a2)
 
   if (a1->type == AR_ELEMENT && a2->type == AR_ELEMENT)
     {
-      gcc_assert (a1->dimen == a2->dimen);
+      if (a1->dimen != a2->dimen)
+       gfc_internal_error ("identical_array_ref(): inconsistent dimensions");
+
       for (i = 0; i < a1->dimen; i++)
        {
          if (gfc_dep_compare_expr (a1->start[i], a2->start[i]) != 0)
index 37cb29c2d12742dd0ba7cececac176d5c187fd4e..97fd34c713bd467e9e4dd41275417acabf92d45f 100644 (file)
@@ -1,3 +1,8 @@
+2016-12-01  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/78279
+       * gfortran.dg/pr78279.f90: New test.
+
 2016-11-24  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        PR fortran/78500
diff --git a/gcc/testsuite/gfortran.dg/pr78279.f90 b/gcc/testsuite/gfortran.dg/pr78279.f90
new file mode 100644 (file)
index 0000000..cb01752
--- /dev/null
@@ -0,0 +1,10 @@
+! { dg-do compile }
+! { dg-options "-Ofast" }
+program p
+   integer :: i
+   real :: z(2,4)
+   z = 0.0
+   do i = 1, 3
+      if ( z(i) > z(1,i+1) ) print *, i   ! { dg-error "mismatch in array reference" }
+   end do
+end