aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-05-02 18:29:14 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2013-05-02 18:29:14 +0200
commit1634e53f83e6867eee8a0e88ac8869bec5af1f82 (patch)
treedcebcda3ff1e099bc1aa359f0760d729e1c1f185 /gcc/fortran/resolve.c
parent9f8e7a96c2d45daf5ee6e0ce9a1cbe4c80cbf96b (diff)
downloadgcc-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.c1
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)