This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ipa/60965] [4.10 Regression] IPA: Devirtualization versus placement new
- From: "redi at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 25 Apr 2014 14:59:26 +0000
- Subject: [Bug ipa/60965] [4.10 Regression] IPA: Devirtualization versus placement new
- Auto-submitted: auto-generated
- References: <bug-60965-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60965
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-04-25
Known to work| |4.8.2, 4.9.0
Summary|IPA: Devirtualization |[4.10 Regression] IPA:
|versus placement new |Devirtualization versus
| |placement new
Ever confirmed|0 |1
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Self-contained reproducer, using -std=c++11 -O2
#include <new>
class EmbeddedObject {
public:
virtual int val() { return 2; }
};
class Container {
alignas(EmbeddedObject) char buffer[sizeof(EmbeddedObject)];
public:
EmbeddedObject *obj() { return (EmbeddedObject*)buffer; }
Container() { new (buffer) EmbeddedObject(); }
};
Container o;
int main()
{
__builtin_printf("%d\n", o.obj()->val());
}