http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55148
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-10-31 12:22:54 UTC --- http://gcc.gnu.org/gcc-4.7/changes.html#cxx notes "G++ now properly re-uses stack space allocated for temporary objects when their lifetime ends, which can significantly lower stack consumption for some C++ functions. As a result of this, some code with undefined behavior will now break"