From: Dominique d'Humieres Date: Sun, 24 Jan 2016 13:12:44 +0000 (+0100) Subject: [multiple changes] X-Git-Tag: basepoints/gcc-7~1364 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16acb1a8c70aed62fb95847244affe15219bad2e;p=thirdparty%2Fgcc.git [multiple changes] 2016-01-24 Dominique d'Humieres PR fortran/68283 * primary.c (gfc_variable_attr): revert revision r221955, call gfc_internal_error only if there is no error. 2016-01-24 Dominique d'Humieres PR fortran/68283 gfortran.dg/pr68283.f90: New test. From-SVN: r232775 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 275acaff20b1..294fc6632bc0 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2016-01-24 Dominique d'Humieres + + PR fortran/68283 + * primary.c (gfc_variable_attr): revert revision r221955, + call gfc_internal_error only if there is no error. + 2016-01-24 Thomas Koenig PR fortran/66094 diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c index f42c00c40c84..fb4029ce7932 100644 --- a/gcc/fortran/primary.c +++ b/gcc/fortran/primary.c @@ -2194,7 +2194,7 @@ check_substring: symbol_attribute gfc_variable_attr (gfc_expr *expr, gfc_typespec *ts) { - int dimension, codimension, pointer, allocatable, target, n; + int dimension, codimension, pointer, allocatable, target; symbol_attribute attr; gfc_ref *ref; gfc_symbol *sym; @@ -2253,22 +2253,9 @@ gfc_variable_attr (gfc_expr *expr, gfc_typespec *ts) case AR_UNKNOWN: /* If any of start, end or stride is not integer, there will already have been an error issued. */ - for (n = 0; n < ref->u.ar.as->rank; n++) - { - int errors; - gfc_get_errors (NULL, &errors); - if (((ref->u.ar.start[n] - && ref->u.ar.start[n]->ts.type == BT_UNKNOWN) - || - (ref->u.ar.end[n] - && ref->u.ar.end[n]->ts.type == BT_UNKNOWN) - || - (ref->u.ar.stride[n] - && ref->u.ar.stride[n]->ts.type == BT_UNKNOWN)) - && errors > 0) - break; - } - if (n == ref->u.ar.as->rank) + int errors; + gfc_get_errors (NULL, &errors); + if (errors == 0) gfc_internal_error ("gfc_variable_attr(): Bad array reference"); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 60d9412fc02c..4fb8cca07cd5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-01-24 Dominique d'Humieres + + PR fortran/68283 + gfortran.dg/pr68283.f90: New test. + 2016-01-24 Thomas Koenig PR fortran/66094