]> granicus.if.org Git - clang/commit
When laying out bases in, always try the "base subobject" LLVM type. If it
authorAnders Carlsson <andersca@mac.com>
Sun, 17 Apr 2011 21:56:13 +0000 (21:56 +0000)
committerAnders Carlsson <andersca@mac.com>
Sun, 17 Apr 2011 21:56:13 +0000 (21:56 +0000)
commiteb9d81dff99d4996f41c93ce71b08aaf753cbae8
treefe3e40eb514d18d044d137420eb6a0391a3f05ee
parent1741d7b3c88eda8891d30f5c920d55dfd54c62f0
When laying out bases in, always try the "base subobject" LLVM type. If it
turns out that a field or base needs to be laid out in the tail padding of
the base, CGRecordLayoutBuilder::ResizeLastBaseFieldIfNecessary will convert
it to an array of i8.

I've audited the new test results to make sure that they are still valid. I've
also verified that we pass a self-host with this change.

This (finally) fixes PR5589!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129673 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGRecordLayoutBuilder.cpp
test/CodeGenCXX/class-layout.cpp
test/CodeGenCXX/global-init.cpp
test/CodeGenCXX/pointers-to-data-members.cpp
test/CodeGenCXX/pragma-pack.cpp
test/CodeGenCXX/x86_64-arguments.cpp