This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC/Patch for PR fortran/17675

On Tuesday 04 January 2005 22:26, Steve Ellcey wrote:
> > From: (James A. Morrison)
> >
> >  Since you have everything aligned already, you could put an assert
> > in build_field like:
> >         gcc_assert (known_align >= desired_align || !STRICT_ALIGNMENT);
> This patch doesn't gaurentee that everything is aligned so I don't think
> this assert would work, the code tries its best to align things but a
> given set of equivelences can result in data that cannot be completely
> aligned.  Like:
>       real r1(5)
>       double precision d1, d2
>       equivalence (r1(1), d1)
>       equivalence (r1(2), d2)
> For machines where real is 4 byte aligned and 4 bytes in size and double
> precision is 8 byte aligned and 8 bytes in size, then either d1 or d2
> has to be misaligned.

We should throw an error in this case, like g77 does.

I'm working on your patch, but have hit some complications. I don't think your 
patch is sufficient (there are cases like the above it misses), and there are 
bugs in the existing implementation (when equivalences and common blocks are 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]