http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56294
--- Comment #9 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-02-23 11:37:24 UTC --- Created attachment 29528 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29528 A simpler patch to fix issue in comment 7 The patch from comment #8 had problems of its own, mainly it does not take care of the elaborate fancy names that create_access_replacement creates for the user-created aggregates. I think that the "SR" names that it leaves in the artificial aggregate replacements do not have a high enough value to justify another parameter of get_access_replacement and storing or late-creating fancy names and so on, so if we do not want to create replacements upfront, I'd actually prefer this much simpler patch. However, if we go down this route of creating replacements lazily, that will mean that replacement declarations may be created in different order in -g and -g0 runs (exactly in the cases when patch from comment #8 had to upgrade a debug-only replacement to a real one), which, if I understand it well, may lead to different ordering of decl UIDs which in turn may eventually lead to further code generation differences...