diff options
| author | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-22 20:24:18 +0000 |
|---|---|---|
| committer | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-22 20:24:18 +0000 |
| commit | 3011e448c9496ea3a197f0230e2cc74f041d7b2b (patch) | |
| tree | a2854d5bb8eed90e91b05eef9902fb15fa5d0fce | |
| parent | 02cfc9c9ff51d2a640a520583b4298016b535583 (diff) | |
| download | ppe42-gcc-3011e448c9496ea3a197f0230e2cc74f041d7b2b.tar.gz ppe42-gcc-3011e448c9496ea3a197f0230e2cc74f041d7b2b.zip | |
2009-06-22 Tobias Burnus <burnus@net-b.de>
PR fortran/40472
PR fortran/50520
* simplify.c (gfc_simplify_spread): Fix the case that source=
is a scalar.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148814 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/fortran/simplify.c | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index c42c91d26d8..b502caf53ae 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2009-06-22 Tobias Burnus <burnus@net-b.de> + + PR fortran/40472 + PR fortran/50520 + * simplify.c (gfc_simplify_spread): Fix the case that source= + is a scalar. + 2009-06-22 Paul Thomas <pault@gcc.gnu.org> PR fortran/40443 diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index 79341d3d1e1..f57f68e3e68 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -5117,7 +5117,14 @@ gfc_simplify_spread (gfc_expr *source, gfc_expr *dim_expr, gfc_expr *ncopies_exp /* Do not allow the array size to exceed the limit for an array constructor. */ - gfc_array_size (source, &size); + if (source->expr_type == EXPR_ARRAY) + { + if (gfc_array_size (source, &size) == FAILURE) + gfc_internal_error ("Failure getting length of a constant array."); + } + else + mpz_init_set_ui (size, 1); + if (mpz_get_si (size)*ncopies > gfc_option.flag_max_array_constructor) return NULL; |

