http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47026
Jonathan Wakely changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution||INVALID
--- Comment #2 from Jonathan Wakely 2010-12-20
12:03:12 UTC ---
(In reply to comment #0)
>
> /* temporary is being assigned to a const-reference : BAD */
> const int* const &alias(ptr);
This is the correct behaviour, see 12.2 [class.temporary] paragraphs 4 and 5 in
the standard:
"4 There are two contexts in which temporaries are destroyed at a different
point than the end of the full-expression. ...
"5 The second context is when a reference is bound to a temporary. The
temporary to which the reference is bound or the temporary that is the complete
object to a subobject of which the temporary is bound persists for the lifetime
of the reference except as specified below."
The lifetime of the temporary ends on return from main, so the temporary also
ends when main returns.