mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-03 19:02:35 +00:00
remember to emit weak reference in one more case.
llvm-svn: 36438
This commit is contained in:
parent
21684d3242
commit
d922b8ca9b
@ -639,8 +639,13 @@ void ARMAsmPrinter::printCPInstOperand(const MachineInstr *MI, int OpNo,
|
||||
|
||||
if (MCPE.isMachineConstantPoolEntry())
|
||||
EmitMachineConstantPoolValue(MCPE.Val.MachineCPVal);
|
||||
else
|
||||
else {
|
||||
EmitGlobalConstant(MCPE.Val.ConstVal);
|
||||
// remember to emit the weak reference
|
||||
if (const GlobalValue *GV = dyn_cast<GlobalValue>(MCPE.Val.ConstVal))
|
||||
if (GV->hasExternalWeakLinkage())
|
||||
ExtWeakSymbols.insert(GV);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
18
test/CodeGen/ARM/weak2.ll
Normal file
18
test/CodeGen/ARM/weak2.ll
Normal file
@ -0,0 +1,18 @@
|
||||
; RUN: llvm-as < %s | llc -march=arm | grep .weak
|
||||
|
||||
define i32 @f(i32 %a) {
|
||||
entry:
|
||||
%tmp2 = icmp eq i32 %a, 0 ; <i1> [#uses=1]
|
||||
%t.0 = select i1 %tmp2, i32 (...)* null, i32 (...)* @test_weak ; <i32 (...)*> [#uses=2]
|
||||
%tmp5 = icmp eq i32 (...)* %t.0, null ; <i1> [#uses=1]
|
||||
br i1 %tmp5, label %UnifiedReturnBlock, label %cond_true8
|
||||
|
||||
cond_true8: ; preds = %entry
|
||||
%tmp10 = tail call i32 (...)* %t.0( ) ; <i32> [#uses=1]
|
||||
ret i32 %tmp10
|
||||
|
||||
UnifiedReturnBlock: ; preds = %entry
|
||||
ret i32 250
|
||||
}
|
||||
|
||||
declare extern_weak i32 @test_weak(...)
|
Loading…
x
Reference in New Issue
Block a user