------- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-03 19:15 ------- (In reply to comment #4) > Subject: Re: Incorrect reinitialization of compound literal > > On Dec 3, 2004, at 10:50 AM, pinskia at gcc dot gnu dot org wrote: > > > > > ------- Additional Comments From pinskia at gcc dot gnu dot org > > 2004-12-03 18:50 ------- > > But reading 6.5.2.5 P 16 seems to say something different. > > > > What it seems to say is: > > p = &((int) {1}); > > is to set the int to be one and then take the address. We still point > > to the same int as before. > > Not exactly. We still point to the same (one-element) array of ints we > did before. The array is modifiable, and we're changing the value of > the first element in the array. You might think that we should be > reinitializing the object, but that's wrong. When we execute that > statement a second time all we're doing is setting p to the address of > the compound literal again, but we have change the value of that > compound literal.
But it is not clear to me at least we should reinitialize the literal, because the example which I gave shows it should but you say it should not. Also I should note ICC 8.0 also has the same output as GCC does. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18814