------- Comment #3 from pinskia at gcc dot gnu dot org 2007-08-09 09:18 ------- Because placement new is required to reproduce this bug and the front-end is where the broken code happens already, then the patch to fix PR 29286 is the cause.
The problem is in build_new_1 where we create a temp variable to hold the placement variable is initialized with the value of the placement new which is wrong as we don't get that initialization inside the conditional. You can most likely reduce this testcase further using printf instead of cout and saying if you call operator() too many times to abort. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ian at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC build triplet|x86_64-unknown-linux-gnu | GCC host triplet|x86_64-unknown-linux-gnu | GCC target triplet|x86_64-unknown-linux-gnu | Last reconfirmed|0000-00-00 00:00:00 |2007-08-09 09:18:30 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33025