diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-12 16:45:47 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-12 16:45:47 +0000 |
commit | 100fbdd06be7590b23c4707a98cd605bdb519498 (patch) | |
tree | 085b532cec0aa1e6c81a9237bbeeea6612512aa5 | |
parent | d3f7766f2363862b9c8586d2f78bc413223240d3 (diff) | |
download | llvm-100fbdd06be7590b23c4707a98cd605bdb519498.tar.gz llvm-100fbdd06be7590b23c4707a98cd605bdb519498.tar.bz2 llvm-100fbdd06be7590b23c4707a98cd605bdb519498.tar.xz |
Always remove an alias when we rename the target.
Should fix the dragonegg build bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183845 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/IPO/GlobalOpt.cpp | 4 | ||||
-rw-r--r-- | test/Transforms/GlobalOpt/alias-resolve.ll | 13 |
2 files changed, 13 insertions, 4 deletions
diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp index 72ba250f47..a4de71b3ae 100644 --- a/lib/Transforms/IPO/GlobalOpt.cpp +++ b/lib/Transforms/IPO/GlobalOpt.cpp @@ -3238,9 +3238,7 @@ bool GlobalOpt::OptimizeGlobalAliases(Module &M) { if (Used.compilerUsedErase(J)) Used.compilerUsedInsert(Target); - } - - if (mayHaveOtherReferences(*J, Used)) + } else if (mayHaveOtherReferences(*J, Used)) continue; // Delete the alias. diff --git a/test/Transforms/GlobalOpt/alias-resolve.ll b/test/Transforms/GlobalOpt/alias-resolve.ll index a42dd280da..32f4bf8ebe 100644 --- a/test/Transforms/GlobalOpt/alias-resolve.ll +++ b/test/Transforms/GlobalOpt/alias-resolve.ll @@ -1,4 +1,7 @@ -; RUN: opt < %s -globalopt -S | FileCheck %s +; We use a temporary file so that the test fails when opt crashes. + +; RUN: opt < %s -globalopt -S > %t +; RUN: FileCheck %s < %t @foo1 = alias void ()* @foo2 ; CHECK: @foo1 = alias void ()* @foo2 @@ -25,3 +28,11 @@ entry: ret void } + +@foo3 = alias void ()* @bar3 +; CHECK-NOT: bar3 + +define internal void @bar3() { + ret void +} +;CHECK: define void @foo3 |