summaryrefslogtreecommitdiff
path: root/gcc/fortran/interface.c
diff options
context:
space:
mode:
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2007-12-10 21:42:56 +0000
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2007-12-10 21:42:56 +0000
commite20ab4012af75586700f1d945026d32cb58f6901 (patch)
treed4fafe2f112c015aa7fea4ff86ef6e25076cdb6d /gcc/fortran/interface.c
parenta6879b1d1819c9d4761e0d4eada1a48700dfcccd (diff)
downloadgcc-e20ab4012af75586700f1d945026d32cb58f6901.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130752 138bc75d-0d04-0410-961f-82ee72b054a4
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 0ff31127e95..b242d0707f8 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;