This is the mail archive of the gcc-bugs@gcc.gnu.org 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]

[Bug c++/23171] [4.1 Regression] ICE on pointer initialization with C99 initializer



------- Comment #12 from mark at codesourcery dot com  2005-11-14 18:27 -------
Subject: Re:  [4.1 Regression] ICE on pointer initialization
 with C99 initializer

dberlin at gcc dot gnu dot org wrote:
> ------- Comment #11 from dberlin at gcc dot gnu dot org  2005-11-14 18:14 -------
> Mark, the frontend is producing the address of a constructor, and nothing in
> the middle end used to be really analyzing static iniatlizers which is why it
> didn't break before (those that do try to look at them would give up in this
> case, but static vars analysis can't give up without destroying the results of
> the entire analysis)

OK, that's a good summary of the key change.  My point was simply that
this is not something new the front-end started doing; it's been using
this construct to mean "address of a temporary" for a long time.

> IMHO, this easier to fix in the frontend than in the middle end, by simply not
> producing &CONSTRUCTOR.

I agree that, at least, the best fix is in the front-end.  However, it
probably won't be trivial to do.  If the problem only affects static
initializers, then we should probably try to localize the change to that
code, rather than trying to introduce COMPOUND_LITERAL_EXPR throughout
the front end at this point.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23171


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