From d36cad9914ea08ce9b4c62916323ebec0c406eba Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Wed, 24 Dec 2014 22:44:29 +0000 Subject: [PATCH] CodeGen: Allow aliases to be overridden by variables git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224827 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 2 ++ test/CodeGen/X86/pr22019.ll | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index ec7da6b99c4..93445a8c84f 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -337,6 +337,8 @@ void AsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) { if (!GV->hasInitializer()) // External globals require no extra code. return; + GVSym->redefineIfPossible(); + if (MAI->hasDotTypeDotSizeDirective()) OutStreamer.EmitSymbolAttribute(GVSym, MCSA_ELF_TypeObject); diff --git a/test/CodeGen/X86/pr22019.ll b/test/CodeGen/X86/pr22019.ll index f4a1707ad01..4cee5d704d3 100644 --- a/test/CodeGen/X86/pr22019.ll +++ b/test/CodeGen/X86/pr22019.ll @@ -3,10 +3,21 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" module asm "pselect = __pselect" +module asm "var = __var" +module asm "alias = __alias" ; CHECK: pselect = __pselect +; CHECK: var = __var +; CHECK: alias = __alias ; CHECK: pselect: ; CHECK: retq define void @pselect() { ret void } + +; CHECK: var: +; CHECK: .long 0 +@var = global i32 0 + +; CHECK: alias = var +@alias = alias i32* @var -- 2.34.1