OSDN Git Service

ThinLTOBitcodeWriter: Do not follow operand edges of type GlobalValue when looking...
authorPeter Collingbourne <peter@pcc.me.uk>
Thu, 2 Mar 2017 23:10:17 +0000 (23:10 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Thu, 2 Mar 2017 23:10:17 +0000 (23:10 +0000)
commitd8035f7f1481b1e3cb91437a8e9fc05ca6df58f9
tree49e1ef16c050a3cd5291add0820e6808d6483ee6
parent03c7f20105ca6299a42d67fcc70f01fef1975382
ThinLTOBitcodeWriter: Do not follow operand edges of type GlobalValue when looking for virtual functions.

Such edges may otherwise result in infinite recursion if a pointer to a vtable
is reachable from the vtable itself. This can happen in practice if a TU
defines the ABI types used to implement RTTI, and is itself compiled with RTTI.

Fixes PR32121.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296839 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
test/Transforms/ThinLTOBitcodeWriter/circular-reference.ll [new file with mode: 0644]