From 9adb01cbc3ef70e7fa8b4d6b1a1229c63082a496 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 3 Mar 2009 21:31:02 +0000 Subject: [PATCH] Recursively remove dead argument while removing llvm.dbg.declare intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65971 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/StripSymbols.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Transforms/IPO/StripSymbols.cpp b/lib/Transforms/IPO/StripSymbols.cpp index 3906b5111ec..fbb2075cb46 100644 --- a/lib/Transforms/IPO/StripSymbols.cpp +++ b/lib/Transforms/IPO/StripSymbols.cpp @@ -28,6 +28,7 @@ #include "llvm/Pass.h" #include "llvm/ValueSymbolTable.h" #include "llvm/TypeSymbolTable.h" +#include "llvm/Transforms/Utils/Local.h" #include "llvm/Support/Compiler.h" #include "llvm/ADT/SmallPtrSet.h" using namespace llvm; @@ -268,8 +269,8 @@ bool StripDebugInfo(Module &M) { if (Arg1->use_empty()) { if (Constant *C = dyn_cast(Arg1)) DeadConstants.push_back(C); - if (Instruction *I = dyn_cast(Arg1)) - I->eraseFromParent(); + else + RecursivelyDeleteTriviallyDeadInstructions(Arg1, NULL); } if (Arg2->use_empty()) if (Constant *C = dyn_cast(Arg2)) -- 2.34.1