From 959e321a1b41e70cfb2c67cebb3a8c1f79cbf3d3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 26 Jun 2006 19:20:48 +0000 Subject: [PATCH] Fix a stale pointer issue that caused 300.twolf to fail to build on zion last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28916 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/AliasSetTracker.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/Analysis/AliasSetTracker.cpp b/lib/Analysis/AliasSetTracker.cpp index 3f6aa2c9b9f..83ba69a69d0 100644 --- a/lib/Analysis/AliasSetTracker.cpp +++ b/lib/Analysis/AliasSetTracker.cpp @@ -435,6 +435,17 @@ void AliasSetTracker::deleteValue(Value *PtrVal) { // Notify the alias analysis implementation that this value is gone. AA.deleteValue(PtrVal); + // If this is a call instruction, remove the callsite from the appropriate + // AliasSet. + CallSite CS = CallSite::get(PtrVal); + if (CS.getInstruction()) { + Function *F = CS.getCalledFunction(); + if (!F || !AA.doesNotAccessMemory(F)) { + if (AliasSet *AS = findAliasSetForCallSite(CS)) + AS->removeCallSite(CS); + } + } + // First, look up the PointerRec for this pointer. hash_map::iterator I = PointerMap.find(PtrVal); if (I == PointerMap.end()) return; // Noop -- 2.34.1