]> granicus.if.org Git - clang/commit
[MS ABI] Don't zero-initialize vbptrs in bases
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 2 Nov 2015 09:01:44 +0000 (09:01 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 2 Nov 2015 09:01:44 +0000 (09:01 +0000)
commitd010d9ad7e2eb77083e433a2070993f5cc28b555
tree73cc6ddd10414cbfb1dc56379af1b070e286cc2e
parent49747fe0fe3344f5e9010fd0d269af9d17e32f28
[MS ABI] Don't zero-initialize vbptrs in bases

Certain CXXConstructExpr nodes require zero-initialization before a
constructor is called.  We had a bug in the case where the constructor
is called on a virtual base: we zero-initialized the base's vbptr field.
A complementary bug is present in MSVC where no zero-initialization
occurs for the subobject at all.

This fixes PR25370.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@251783 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGCXXABI.cpp
lib/CodeGen/CGCXXABI.h
lib/CodeGen/CGExprCXX.cpp
lib/CodeGen/MicrosoftCXXABI.cpp
test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp