aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Transforms/Utils/Cloning.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-04-23 18:37:01 +0000
committerChris Lattner <sabre@nondot.org>2010-04-23 18:37:01 +0000
commit076863225ce070345ff7048f48b3550e00598a10 (patch)
tree3dcc9895af7b024b61389b147692a32176c3f725 /include/llvm/Transforms/Utils/Cloning.h
parenta56c1c5d4c87896be2a04a855235cfa423252e32 (diff)
downloadexternal_llvm-076863225ce070345ff7048f48b3550e00598a10.zip
external_llvm-076863225ce070345ff7048f48b3550e00598a10.tar.gz
external_llvm-076863225ce070345ff7048f48b3550e00598a10.tar.bz2
switch InlineInfo.DevirtualizedCalls's list to be of WeakVH.
This fixes a bug where calls inlined into an invoke would get changed into an invoke but the array would keep pointing to the (now dead) call. The improved inliner behavior is still disabled for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102196 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Transforms/Utils/Cloning.h')
-rw-r--r--include/llvm/Transforms/Utils/Cloning.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/llvm/Transforms/Utils/Cloning.h b/include/llvm/Transforms/Utils/Cloning.h
index a9dc95b..463c5d4 100644
--- a/include/llvm/Transforms/Utils/Cloning.h
+++ b/include/llvm/Transforms/Utils/Cloning.h
@@ -21,6 +21,7 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Twine.h"
+#include "llvm/Support/ValueHandle.h"
namespace llvm {
@@ -178,7 +179,7 @@ public:
/// DevirtualizedCalls - InlineFunction fills this in with callsites that were
/// inlined from the callee that went from being indirect calls to direct
/// calls due to inlining. This is only filled in if CG is non-null.
- SmallVector<Instruction*, 2> DevirtualizedCalls;
+ SmallVector<WeakVH, 2> DevirtualizedCalls;
void reset() {
StaticAllocas.clear();