http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60367
--- Comment #1 from rob.desbois at gmail dot com --- ...having realised that this might look like I just don't grok move construction I expanded my test - adding copy & move constructors & assignment operators to foo and re-running the test still gives the same result, i.e. the address of the function argument is not the address of a constructed object: constructed foo @ 0x7fff80e0f25f default argument is at 0x7fff80e0f240 (I can attach the enhanced test on request)