aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/interface.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2007-12-10 22:42:56 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2007-12-10 22:42:56 +0100
commitda9ad92397352dceef1f0bd3d2cb7ca221489570 (patch)
treed4fafe2f112c015aa7fea4ff86ef6e25076cdb6d /gcc/fortran/interface.c
parentc8305c98510ac10855723216959cbca83182aeb8 (diff)
downloadgcc-da9ad92397352dceef1f0bd3d2cb7ca221489570.zip
gcc-da9ad92397352dceef1f0bd3d2cb7ca221489570.tar.gz
gcc-da9ad92397352dceef1f0bd3d2cb7ca221489570.tar.bz2
re PR fortran/34425 (bogus warning)
2007-12-10 Tobias Burnus <burnus@net-b.de> PR fortran/34425 * interface.c (get_expr_storage_size): Use signed integer when obtaining the bounds. 2007-12-10 Tobias Burnus <burnus@net-b.de> PR fortran/34425 * gfortran.dg/argument_checking_10.f90: New. From-SVN: r130752
Diffstat (limited to 'gcc/fortran/interface.c')
-rw-r--r--gcc/fortran/interface.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c
index 0ff3112..b242d07 100644
--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -1642,8 +1642,8 @@ get_expr_storage_size (gfc_expr *e)
if (ref->u.ar.as->lower[i] && ref->u.ar.as->upper[i]
&& ref->u.ar.as->lower[i]->expr_type == EXPR_CONSTANT
&& ref->u.ar.as->upper[i]->expr_type == EXPR_CONSTANT)
- elements *= mpz_get_ui (ref->u.ar.as->upper[i]->value.integer)
- - mpz_get_ui (ref->u.ar.as->lower[i]->value.integer)
+ elements *= mpz_get_si (ref->u.ar.as->upper[i]->value.integer)
+ - mpz_get_si (ref->u.ar.as->lower[i]->value.integer)
+ 1L;
else
return 0;