mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 00:33:09 +00:00
remember to emit weak reference in one more case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36438 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
77d0f970b3
commit
305b8a5f62
@ -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…
Reference in New Issue
Block a user