http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60367
--- Comment #3 from rob.desbois at gmail dot com --- Adding a destructor didn't fix it for me - though it was destroyed for the same address as the constructed object. constructed foo @ 0x7fffa012e5ef default argument is at 0x7fffa012e5d0 destructed foo @ 0x7fffa012e5ef For what it's worth I tried putting a size_t member into the object being constructed, and using a member-initializer to set it to an identifiable bit pattern - even though the temporary was at an 'unconstructed' address, the size_t was repeatedly correct. The gremlins are messing with my head...