aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineBlockPlacement.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2015-02-18 05:19:40 +0000
committerNico Weber <nicolasweber@gmx.de>2015-02-18 05:19:40 +0000
commit4486d61c03c1fe9c84af63727bbed269d957e720 (patch)
treed3eca2d5a191a47f654b3cca26365f62ca38f69e /llvm/lib/CodeGen/MachineBlockPlacement.cpp
parent90b1d152b5161ca87b6545da0a7134173cf7336f (diff)
downloadllvm-4486d61c03c1fe9c84af63727bbed269d957e720.zip
llvm-4486d61c03c1fe9c84af63727bbed269d957e720.tar.gz
llvm-4486d61c03c1fe9c84af63727bbed269d957e720.tar.bz2
Port r163224 to C++.
The motivation is to fix a crash on struct S {} s; Foo S::~S() { s.~S(); } What was happening here was that S::~S() was marked as invalid since its return type is invalid, and as a consequence CheckFunctionDeclaration() wasn't called and S::~S() didn't get merged into S's implicit destructor. This way, the class ended up with two destructors, which confused the overload printer when it suddenly had to print two possible destructors for `s.~S()`. In addition to fixing the crash, this change also seems to improve diagnostics in a few other places, see test changes. Crash found by SLi's bot. llvm-svn: 229639
Diffstat (limited to 'llvm/lib/CodeGen/MachineBlockPlacement.cpp')
0 files changed, 0 insertions, 0 deletions