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

Reply via email to