https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69970
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- You are comparing this against null when invoking the constructor and the compiler tells you the code is equivalent to Bar () : foo_ (new (true)) {}