[Patch, fortran] PR29786 - [4.1/4.2/4.3 Regression] Initialization of overlapping variables: Not implemented

Brooks Moses brooks.moses@codesourcery.com
Fri May 25 06:06:00 GMT 2007


Paul Richard Thomas wrote:
> This is also a fix for PR30875.
[...]
> The fix works by detecting overlapping initializers, creating a new
> unsigned char [] field for the equivalence union that is the size of
> the union and writing all the initilizer values to this, using the
> target-memory mechinery that was written for simplify_transfer.
> Previously the constraints were wrongly applied and testcases have
> been modified appropriately.  One new testcase is supplied.
> 
> Regtested on Cygwin_NT/PIV and, by tonight, on x86_ia64 - OK for trunk and 4.2?

Getting it to regtest on 4.2 may be a bit of a trick, since I haven't 
backported any of the simplify_transfer stuff (or its middle-end 
prerequisites) to 4.2 yet!  :)

I have been thinking about it, though.  It's quite possible to backport 
most of the target-memory stuff without touching the existing code much 
at all, at the cost of having a little bit of extra code duplication 
between the Fortran front end and the middle end.  (On mainline, the 
right thing to do was to consolidate the duplicated parts into shared 
functions.  On a release branch, I believe the right thing is to leave 
them separate, so as not to muck about with things more than is needed.) 
  Thus, this should be a low-risk backport, despite the size of the patches.

Comments?

- Brooks



More information about the Gcc-patches mailing list