This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [vta, trunk?] don't vary packed array representation depending on debug info
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Alexandre Oliva <aoliva at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, fortran at gcc dot gnu dot org
- Date: Tue, 7 Oct 2008 11:06:11 +0200
- Subject: Re: [vta, trunk?] don't vary packed array representation depending on debug info
- References: <orabdgaj67.fsf@oliva.athome.lsd.ic.unicamp.br>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Oct 07, 2008 at 05:44:32AM -0300, Alexandre Oliva wrote:
> The use of different types depending on whether we're issuing debug
> information or not caused -fcompare-debug differences. IIRC, they had
> to do with aliasing differences. I don't remember having found any
> case in which generated code was actually different, rather than some
> harmless difference in dumps, but why take risks?
The code is different on the trunk, but I agree with leaving the
write_symbols == NO_DEBUG check out. That said, some Fortran maintainer
needs to approve it.
> for gcc/ChangeLog.vta
> from Alexandre Oliva <aoliva@redhat.com>
>
> * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
> vary types depending on debug info.
>
> Index: gcc/fortran/trans-types.c
> ===================================================================
> --- gcc/fortran/trans-types.c.orig 2008-07-29 18:37:48.000000000 -0300
> +++ gcc/fortran/trans-types.c 2008-09-20 18:45:19.000000000 -0300
> @@ -1415,10 +1415,10 @@ gfc_get_nodesc_array_type (tree etype, g
> mpz_clear (stride);
> mpz_clear (delta);
>
> - /* In debug info represent packed arrays as multi-dimensional
> - if they have rank > 1 and with proper bounds, instead of flat
> - arrays. */
> - if (known_offset && write_symbols != NO_DEBUG)
> + /* Represent packed arrays as multi-dimensional if they have rank >
> + 1 and with proper bounds, instead of flat arrays. This makes for
> + better debug info. */
> + if (known_offset)
> {
> tree gtype = etype, rtype, type_decl;
>
Jakub