diff options
author | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-10 21:42:56 +0000 |
---|---|---|
committer | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-10 21:42:56 +0000 |
commit | e20ab4012af75586700f1d945026d32cb58f6901 (patch) | |
tree | d4fafe2f112c015aa7fea4ff86ef6e25076cdb6d /gcc/fortran/interface.c | |
parent | a6879b1d1819c9d4761e0d4eada1a48700dfcccd (diff) | |
download | gcc-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.c | 4 |
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; |