From da9ad92397352dceef1f0bd3d2cb7ca221489570 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Mon, 10 Dec 2007 22:42:56 +0100 Subject: re PR fortran/34425 (bogus warning) 2007-12-10 Tobias Burnus PR fortran/34425 * interface.c (get_expr_storage_size): Use signed integer when obtaining the bounds. 2007-12-10 Tobias Burnus PR fortran/34425 * gfortran.dg/argument_checking_10.f90: New. From-SVN: r130752 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/interface.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4c184f8..cd9b218 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-12-10 Tobias Burnus + + PR fortran/34425 + * interface.c (get_expr_storage_size): Use signed integer when + obtaining the bounds. + 2007-12-09 Jakub Jelinek PR fortran/22244 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; -- cgit v1.1