[PATCH] D24721: [MC][MCParser] Mark local and weak symbols as such when parsing assembly text

Simon Dardis via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 19 05:19:07 PDT 2016


sdardis created this revision.
sdardis added a subscriber: llvm-commits.
Herald added a reviewer: vkalintiris.

When parsing assembly text directives such as .local, .weak, the symbols were
not marked as such in the internal symbol table. This lead to different output
depending on whether MCAsmStreamer or MCELFStreamer was. This patch
corrects such behaviour.

https://reviews.llvm.org/D24721

Files:
  lib/MC/MCParser/ELFAsmParser.cpp

Index: lib/MC/MCParser/ELFAsmParser.cpp
===================================================================
--- lib/MC/MCParser/ELFAsmParser.cpp
+++ lib/MC/MCParser/ELFAsmParser.cpp
@@ -166,6 +166,12 @@
 
       MCSymbol *Sym = getContext().getOrCreateSymbol(Name);
 
+      if (Attr == MCSA_Local) {
+        cast<MCSymbolELF>(Sym)->setBinding(ELF::STB_LOCAL);
+      } else if (Attr == MCSA_Weak) {
+        cast<MCSymbolELF>(Sym)->setBinding(ELF::STB_WEAK);
+      }
+
       getStreamer().EmitSymbolAttribute(Sym, Attr);
 
       if (getLexer().is(AsmToken::EndOfStatement))


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24721.71812.patch
Type: text/x-patch
Size: 579 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160919/774d537e/attachment.bin>


More information about the llvm-commits mailing list