This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [gfortran,patch] Bounds-checking for lower bound of last dimension of assumed-size array
- From: Tobias Burnus <burnus at net-b dot de>
- To: François-Xavier Coudert <fxcoudert at gmail dot com>
- Cc: gfortran <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 14 May 2007 16:18:53 +0200
- Subject: Re: [gfortran,patch] Bounds-checking for lower bound of last dimension of assumed-size array
- References: <19c433eb0705070813y5315f78dg3a3d593101416697@mail.gmail.com>
Hi François-Xavier,
François-Xavier Coudert wrote:
> Bootstrapped && regtested on i686-linux, both without and with
> -fbounds-check (no failure introduced by the patch, when running with
> -fbounds-check[1]). OK for mainline?
Bootstrapped and regression tested (x86_64-unknown-linux-gnu,
-m64/-m32). Also did some tests, which succeeded.
> Index: trans-array.c
> @@ -2090,7 +2093,9 @@ gfc_conv_array_index_offset (gfc_se * se
> if ((ar->as->type != AS_ASSUMED_SIZE && !ar->as->cp_was_assumed)
> || dim < ar->dimen - 1)
> index = gfc_trans_array_bound_check (se, info->descriptor,
> - index, dim, &ar->where);
> + index, dim, &ar->where,
> + (ar->as->type != AS_ASSUMED_SIZE
> + && !ar->as->cp_was_assumed) || dim < ar->dimen - 1);
>
Is not the last argument of gfc_trans_array_bound_check always true? You
copied exactly the arguments of the "if" above.
Did you want to remove the "if" completely?
> @@ -2116,7 +2121,9 @@ gfc_conv_array_index_offset (gfc_se * se
> if ((ar->as->type != AS_ASSUMED_SIZE && !ar->as->cp_was_assumed)
> || dim < ar->dimen - 1)
> index = gfc_trans_array_bound_check (se, info->descriptor,
> - index, dim, &ar->where);
> + index, dim, &ar->where,
> + (ar->as->type != AS_ASSUMED_SIZE
> + && !ar->as->cp_was_assumed) || dim < ar->dimen - 1);
>
Ditto.
Tobias