Remember to eraseFromParent after replaceAllUsesWith.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 10 Sep 2014 19:39:41 +0000 (19:39 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 10 Sep 2014 19:39:41 +0000 (19:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217536 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/gold/alias.ll
tools/gold/gold-plugin.cpp

index 6a64a6a7033bb933c0d0b129a593de6d87358c8c..dbf3af57a7b4c299ee94d27b02d85a976cd63f7e 100644 (file)
@@ -2,10 +2,12 @@
 ; RUN: llvm-as %p/Inputs/alias-1.ll -o %t2.o
 ; RUN: ld -shared -o %t3.o -plugin %llvmshlibdir/LLVMgold.so %t2.o %t.o \
 ; RUN:  -plugin-opt=emit-llvm
-; RUN: llvm-dis %t3.o -o - | FileCheck %s
+; RUN: llvm-dis %t3.o -o - | FileCheck %s
 
+; CHECK-NOT: alias
 ; CHECK: @a = global i32 42
-; CHECK: @b = global i32 1
+; CHECK-NEXT: @b = global i32 1
+; CHECK-NOT: alias
 
 @a = weak alias i32* @b
 @b = global i32 1
index 110433aefe3ddcfae2cd219cdb280cea6b2dd9da..e7888bea9e6ae964483210575ea3037cead15df1 100644 (file)
@@ -457,6 +457,7 @@ static void drop(GlobalValue &GV) {
                          /*Initializer*/ nullptr);
   Var->takeName(&Alias);
   Alias.replaceAllUsesWith(Var);
+  Alias.eraseFromParent();
 }
 
 static const char *getResolutionName(ld_plugin_symbol_resolution R) {