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

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Kostya Frumkin from comment #3)
> Hi, for example msvc2013 calls base class's virtual method when msvc2015
> calls derived class's virtual method.

It's undefined behaviour. Anything can happen.

> This is developer's mistake which can be predicted by compiler. Few
> developers know about this behavior.

Using placement new to replace a polymorphic type is not a common idiom, I
don't think it's worth adding a warning about it. Just don't do it.

> It'd be awesome to see the correct behavior or at least warning that base
> method is being used after placement new.

GCC's behaviour is already correct.

Reply via email to