[Bug middle-end/94992] gcc thinks a member variable is uninitialised

rafael at espindo dot la gcc-bugzilla@gcc.gnu.org
Fri May 8 15:52:15 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94992

--- Comment #3 from Rafael Avila de Espindola <rafael at espindo dot la> ---
For completeness, this is a reduction of a std::swap(x,x). The placement new
was originally in the move assignment operator.

I was able to reproduce this with gcc 9 by moving a few functions out of line.

As far as I can tell, the relevant standard line is from basic.life:

The lifetime of an object \placeholder{o} of type \tcode{T} ends when:
...
\item the storage which the object occupies is released,
or is reused by an object that is not nested within
\placeholder{o}\iref{intro.object}.


More information about the Gcc-bugs mailing list