simplify.c (gfc_simplify_cshift): Work around bootstrap issues due to inappropriate...
authorSteven G. Kargl <kargl@gcc.gnu.org>
Sat, 21 Nov 2015 20:06:17 +0000 (20:06 +0000)
committerSteven G. Kargl <kargl@gcc.gnu.org>
Sat, 21 Nov 2015 20:06:17 +0000 (20:06 +0000)
2015-11-21  Steven G. Kargl  <kargl@gcc.gnu.org>

* simplify.c (gfc_simplify_cshift): Work around bootstrap issues
due to inappropriate warning options.

From-SVN: r230710

gcc/fortran/ChangeLog
gcc/fortran/simplify.c

index 1d11ae74ff20f1e6423aae654bd539ce2b079151..1f1d04774060a2bfb52f04629b2354bc77471373 100644 (file)
@@ -1,3 +1,8 @@
+2015-11-21  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * simplify.c (gfc_simplify_cshift): Work around bootstrap issues
+       due to inappropriate warning options. 
+
 2015-11-21  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        * simplify.c (gfc_simplify_cshift): Implement simplification of
index 9886d9e20e6c6a9f80c5365ef1db3ac5ce920605..665ea82ee230defbb46c2fba0c4268afeeff289c 100644 (file)
@@ -1869,6 +1869,15 @@ gfc_simplify_cshift (gfc_expr *array, gfc_expr *shift, gfc_expr *dim)
   else
     {
       /* FIXME: Deal with rank > 1 arrays.  For now, don't leak memory.  */
+
+      /* GCC bootstrap is too stupid to realize that the above code for dm
+        is correct.  First, dim can be specified for a rank 1 array.  It is
+        not needed in this nor used here.  Second, the code is simply waiting
+        for someone to implement rank > 1 simplification.   For now, add a
+        pessimization to the code that has a zero valid reason to be here.  */
+      if (dm > array->rank)
+       gcc_unreachable ();
+
       gfc_free_expr (a);
     }