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
diff --git a/lib/Transforms/IPO/Inliner.cpp b/lib/Transforms/IPO/Inliner.cpp
index 322b469..1ac609d 100644
--- a/lib/Transforms/IPO/Inliner.cpp
+++ b/lib/Transforms/IPO/Inliner.cpp
@@ -392,8 +392,10 @@
// onto our worklist to process. They are useful inline candidates.
#if 0
for (unsigned i = 0, e = InlineInfo.DevirtualizedCalls.size();
- i != e; ++i)
- CallSites.push_back(CallSite(InlineInfo.DevirtualizedCalls[i]));
+ i != e; ++i) {
+ Value *Ptr = InlineInfo.DevirtualizedCalls[i];
+ CallSites.push_back(CallSite(Ptr));
+ }
#endif
// Update the cached cost info with the inlined call.