diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2015-06-02 22:08:14 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2015-06-02 22:08:14 +0000 |
commit | b4cb2a41df2b4871e6c0596b2b6683788cda6e04 (patch) | |
tree | 4add5cb79f0b8c32f9a391cbfb358d7de3cd7f5a /gcc/fortran/simplify.c | |
parent | 6712d6fd3087953b89ff78e2e6a58b39eb90a6a0 (diff) | |
download | gcc-b4cb2a41df2b4871e6c0596b2b6683788cda6e04.zip gcc-b4cb2a41df2b4871e6c0596b2b6683788cda6e04.tar.gz gcc-b4cb2a41df2b4871e6c0596b2b6683788cda6e04.tar.bz2 |
simplify.c (gfc_simplify_reshape): Convert assert into returning NULL, which triggers an error condition.
2015-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
* simplify.c (gfc_simplify_reshape): Convert assert into returning
NULL, which triggers an error condition.
2015-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.dg/reshape_7.f90: New test.
From-SVN: r224043
Diffstat (limited to 'gcc/fortran/simplify.c')
-rw-r--r-- | gcc/fortran/simplify.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index f49c6c0..2f3e247 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -5188,8 +5188,11 @@ gfc_simplify_reshape (gfc_expr *source, gfc_expr *shape_exp, e = gfc_constructor_lookup_expr (source->value.constructor, j); else { - gcc_assert (npad > 0); - + if (npad <= 0) + { + mpz_clear (index); + return NULL; + } j = j - nsource; j = j % npad; e = gfc_constructor_lookup_expr (pad->value.constructor, j); |