aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2012-01-25 07:59:21 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2012-01-25 07:59:21 +0100
commit083dd940dcb2169786fbd523059e8c7f41093812 (patch)
tree8adc73a26009f770be87bc669b8215fa124f5621 /gcc/fortran/resolve.c
parentd2bb8192ee35dfe3388c8cad3fc8b66a94c676d0 (diff)
downloadgcc-083dd940dcb2169786fbd523059e8c7f41093812.zip
gcc-083dd940dcb2169786fbd523059e8c7f41093812.tar.gz
gcc-083dd940dcb2169786fbd523059e8c7f41093812.tar.bz2
re PR fortran/51966 (ICE in gfc_conv_array_constructor_expr)
2012-01-24 Tobias Burnus <burnus@net-b.de> PR fortran/51966 * resolve.c (resolve_structure_cons): Only create an array constructors for nonscalars. 2012-01-24 Tobias Burnus <burnus@net-b.de> PR fortran/51966 * gfortran.dg/derived_constructor_char_3.f90: New. From-SVN: r183510
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index c169b9e..b24399d 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1051,6 +1051,7 @@ resolve_structure_cons (gfc_expr *expr, int init)
&& comp->ts.u.cl->length->expr_type == EXPR_CONSTANT
&& cons->expr->ts.u.cl && cons->expr->ts.u.cl->length
&& cons->expr->ts.u.cl->length->expr_type == EXPR_CONSTANT
+ && cons->expr->rank != 0
&& mpz_cmp (cons->expr->ts.u.cl->length->value.integer,
comp->ts.u.cl->length->value.integer) != 0)
{