[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