------- 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