diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-11-13 04:51:02 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-11-13 04:51:02 +0000 |
commit | 4bcf94c75ab9a93f65c9967da988faf4912d1dba (patch) | |
tree | 264be74331be55b8b26b30b7b4e9e2527a58acdb /llvm | |
parent | 580c5dacd0dad915120897e6700dbb85a51e6246 (diff) | |
download | bcm5719-llvm-4bcf94c75ab9a93f65c9967da988faf4912d1dba.tar.gz bcm5719-llvm-4bcf94c75ab9a93f65c9967da988faf4912d1dba.zip |
Parse and record the gnu_unique_object type.
llvm-svn: 118980
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/MC/MCDirectives.h | 1 | ||||
-rw-r--r-- | llvm/lib/MC/MCMachOStreamer.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/MC/MCParser/ELFAsmParser.cpp | 1 | ||||
-rw-r--r-- | llvm/test/MC/ELF/type.s | 3 |
4 files changed, 6 insertions, 0 deletions
diff --git a/llvm/include/llvm/MC/MCDirectives.h b/llvm/include/llvm/MC/MCDirectives.h index 5c1b848ade4..03337a9f521 100644 --- a/llvm/include/llvm/MC/MCDirectives.h +++ b/llvm/include/llvm/MC/MCDirectives.h @@ -26,6 +26,7 @@ enum MCSymbolAttr { MCSA_ELF_TypeTLS, ///< .type _foo, STT_TLS # aka @tls_object MCSA_ELF_TypeCommon, ///< .type _foo, STT_COMMON # aka @common MCSA_ELF_TypeNoType, ///< .type _foo, STT_NOTYPE # aka @notype + MCSA_ELF_TypeGnuUniqueObject, /// .type _foo, @gnu_unique_object MCSA_Global, ///< .globl MCSA_Hidden, ///< .hidden (ELF) MCSA_IndirectSymbol, ///< .indirect_symbol (MachO) diff --git a/llvm/lib/MC/MCMachOStreamer.cpp b/llvm/lib/MC/MCMachOStreamer.cpp index 8759f2b51ca..b8640d3b08e 100644 --- a/llvm/lib/MC/MCMachOStreamer.cpp +++ b/llvm/lib/MC/MCMachOStreamer.cpp @@ -206,6 +206,7 @@ void MCMachOStreamer::EmitSymbolAttribute(MCSymbol *Symbol, case MCSA_ELF_TypeTLS: case MCSA_ELF_TypeCommon: case MCSA_ELF_TypeNoType: + case MCSA_ELF_TypeGnuUniqueObject: case MCSA_IndirectSymbol: case MCSA_Hidden: case MCSA_Internal: diff --git a/llvm/lib/MC/MCParser/ELFAsmParser.cpp b/llvm/lib/MC/MCParser/ELFAsmParser.cpp index b3d5f11e0eb..d074ea9d781 100644 --- a/llvm/lib/MC/MCParser/ELFAsmParser.cpp +++ b/llvm/lib/MC/MCParser/ELFAsmParser.cpp @@ -370,6 +370,7 @@ bool ELFAsmParser::ParseDirectiveType(StringRef, SMLoc) { .Case("tls_object", MCSA_ELF_TypeTLS) .Case("common", MCSA_ELF_TypeCommon) .Case("notype", MCSA_ELF_TypeNoType) + .Case("gnu_unique_object", MCSA_ELF_TypeGnuUniqueObject) .Default(MCSA_Invalid); if (Attr == MCSA_Invalid) diff --git a/llvm/test/MC/ELF/type.s b/llvm/test/MC/ELF/type.s index 8738433de66..a2d07878ea5 100644 --- a/llvm/test/MC/ELF/type.s +++ b/llvm/test/MC/ELF/type.s @@ -9,6 +9,9 @@ foo: .type bar,@object bar: +// Test that gnu_unique_object is accepted. + .type zed,@gnu_unique_object + // CHECK: # Symbol 0x00000004 // CHECK-NEXT: (('st_name', 0x00000005) # 'bar' // CHECK-NEXT: ('st_bind', 0x00000001) |