From 100fbdd06be7590b23c4707a98cd605bdb519498 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Wed, 12 Jun 2013 16:45:47 +0000 Subject: 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 --- lib/Transforms/IPO/GlobalOpt.cpp | 4 +--- 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 -- cgit v1.2.3