]> granicus.if.org Git - clang/commit
[MS ABI] Tolerate invokes of __RTDynamicCast
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 23 Nov 2015 03:01:14 +0000 (03:01 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 23 Nov 2015 03:01:14 +0000 (03:01 +0000)
commit24174192e46b3b2ac2117efe1029379f873d080a
treeb6da69bc1365ee004222cad4eab6c38b34b426eb
parenta064028e17c5818cce57e9d57c85e23c4c26f525
[MS ABI] Tolerate invokes of __RTDynamicCast

The pointer returned by __RTDynamicCast must be bitcasted.  However, it
was not expected that __RTDynamicCast would be invoked, resulting in the
bitcast occuring in a different BasicBlock than the invoke.  This caused
a down-stream PHI to get confused about which BasicBlock the incomming
value was from.

This fixes PR25606.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@253843 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGExprCXX.cpp
test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp