aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/simplify.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/simplify.c')
-rw-r--r--gcc/fortran/simplify.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index 9886d9e..665ea82 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -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);
}