[llvm] r277564 - RecordStreamer: handle inline asm "lazy_reference" and mark symbols as "used"

Mehdi Amini via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 2 20:51:42 PDT 2016


Author: mehdi_amini
Date: Tue Aug  2 22:51:42 2016
New Revision: 277564

URL: http://llvm.org/viewvc/llvm-project?rev=277564&view=rev
Log:
RecordStreamer: handle inline asm "lazy_reference" and mark symbols as "used"

Added:
    llvm/trunk/test/Object/X86/asm-lazy-reference.ll
Modified:
    llvm/trunk/lib/Object/RecordStreamer.cpp

Modified: llvm/trunk/lib/Object/RecordStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/RecordStreamer.cpp?rev=277564&r1=277563&r2=277564&view=diff
==============================================================================
--- llvm/trunk/lib/Object/RecordStreamer.cpp (original)
+++ llvm/trunk/lib/Object/RecordStreamer.cpp Tue Aug  2 22:51:42 2016
@@ -92,6 +92,8 @@ bool RecordStreamer::EmitSymbolAttribute
                                          MCSymbolAttr Attribute) {
   if (Attribute == MCSA_Global || Attribute == MCSA_Weak)
     markGlobal(*Symbol, Attribute);
+  if (Attribute == MCSA_LazyReference)
+    markUsed(*Symbol);
   return true;
 }
 

Added: llvm/trunk/test/Object/X86/asm-lazy-reference.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/X86/asm-lazy-reference.ll?rev=277564&view=auto
==============================================================================
--- llvm/trunk/test/Object/X86/asm-lazy-reference.ll (added)
+++ llvm/trunk/test/Object/X86/asm-lazy-reference.ll Tue Aug  2 22:51:42 2016
@@ -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"




More information about the llvm-commits mailing list