aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/frontend-passes.c
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2015-06-05 20:51:08 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2015-06-05 20:51:08 +0000
commit9c3e121b01cd04ed96645f85d4587184d832a103 (patch)
tree56fbac98df2fbe6025eb1b5b9a9e58d487feb9fd /gcc/fortran/frontend-passes.c
parente7547bc697688459e3e1ece81268e7b14addef22 (diff)
downloadgcc-9c3e121b01cd04ed96645f85d4587184d832a103.zip
gcc-9c3e121b01cd04ed96645f85d4587184d832a103.tar.gz
gcc-9c3e121b01cd04ed96645f85d4587184d832a103.tar.bz2
re PR fortran/66385 (ICE: FORALL writing multiple elements of one array)
2015-06-05 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/66385 * frontend-passes.c (combine_array_constructor): Return early if inside a FORALL loop. 2015-06-05 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/66385 * gfortran.dg/forall_17.f90: New test. From-SVN: r224172
Diffstat (limited to 'gcc/fortran/frontend-passes.c')
-rw-r--r--gcc/fortran/frontend-passes.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c
index 45b053e..3eda42f 100644
--- a/gcc/fortran/frontend-passes.c
+++ b/gcc/fortran/frontend-passes.c
@@ -1243,6 +1243,10 @@ combine_array_constructor (gfc_expr *e)
if (in_assoc_list)
return false;
+ /* With FORALL, the BLOCKS created by create_var will cause an ICE. */
+ if (forall_level > 0)
+ return false;
+
op1 = e->value.op.op1;
op2 = e->value.op.op2;