diff options
author | Tobias Burnus <burnus@net-b.de> | 2013-05-02 18:29:14 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2013-05-02 18:29:14 +0200 |
commit | 1634e53f83e6867eee8a0e88ac8869bec5af1f82 (patch) | |
tree | dcebcda3ff1e099bc1aa359f0760d729e1c1f185 /gcc/fortran/resolve.c | |
parent | 9f8e7a96c2d45daf5ee6e0ce9a1cbe4c80cbf96b (diff) | |
download | gcc-1634e53f83e6867eee8a0e88ac8869bec5af1f82.zip gcc-1634e53f83e6867eee8a0e88ac8869bec5af1f82.tar.gz gcc-1634e53f83e6867eee8a0e88ac8869bec5af1f82.tar.bz2 |
re PR fortran/57142 (SIZE/SHAPE overflow despite kind=8)
2013-05-02 Tobias Burnus <burnus@net-b.de>
PR fortran/57142
* simplify.c (gfc_simplify_size): Renamed from
simplify_size; fix kind=8 handling.
(gfc_simplify_size): New function.
(gfc_simplify_shape): Add range check.
* resolve.c (resolve_function): Fix handling
for ISYM_SIZE.
2013-05-02 Tobias Burnus <burnus@net-b.de>
PR fortran/57142
* gfortran.dg/size_kind_2.f90: New.
* gfortran.dg/size_kind_3.f90: New.
From-SVN: r198549
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 6e1f56f..2860e41 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -2861,6 +2861,7 @@ resolve_function (gfc_expr *expr) for (arg = expr->value.function.actual; arg; arg = arg->next) { if ((GENERIC_ID == GFC_ISYM_UBOUND || GENERIC_ID == GFC_ISYM_SIZE) + && arg == expr->value.function.actual && arg->next != NULL && arg->next->expr) { if (arg->next->expr->expr_type != EXPR_CONSTANT) |