RecordStreamer: handle inline asm "lazy_reference" and mark symbols as "used"

llvm-svn: 277564
This commit is contained in:
Mehdi Amini 2016-08-03 03:51:42 +00:00
parent dcaec77936
commit f9721ba5f1
2 changed files with 17 additions and 0 deletions

View File

@ -92,6 +92,8 @@ bool RecordStreamer::EmitSymbolAttribute(MCSymbol *Symbol,
MCSymbolAttr Attribute) {
if (Attribute == MCSA_Global || Attribute == MCSA_Weak)
markGlobal(*Symbol, Attribute);
if (Attribute == MCSA_LazyReference)
markUsed(*Symbol);
return true;
}

View File

@ -0,0 +1,15 @@
; RUN: llvm-as < %s -o - | llvm-nm - | FileCheck %s
target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128"
target triple = "i386-apple-macosx10.8.0"
; Verify that llvm-nm handles correctly module level ASM, including "lazy_reference"
; CHECK: U .objc_class_name_Bar
; CHECK: U .objc_class_name_Foo
; CHECK: T .objc_class_name_FooSubClass
module asm "\09.objc_class_name_FooSubClass=0"
module asm "\09.globl .objc_class_name_FooSubClass"
module asm "\09.lazy_reference .objc_class_name_Foo"
module asm "\09.lazy_reference .objc_class_name_Bar"