From e13a0ff8ac6c86a04397801061e1a702d4e0eab1 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Sat, 13 Nov 2010 04:51:02 +0000 Subject: [PATCH] Parse and record the gnu_unique_object type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118980 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/MC/MCDirectives.h | 1 + lib/MC/MCMachOStreamer.cpp | 1 + lib/MC/MCParser/ELFAsmParser.cpp | 1 + test/MC/ELF/type.s | 3 +++ 4 files changed, 6 insertions(+) diff --git a/include/llvm/MC/MCDirectives.h b/include/llvm/MC/MCDirectives.h index 5c1b848ade4..03337a9f521 100644 --- a/include/llvm/MC/MCDirectives.h +++ b/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/lib/MC/MCMachOStreamer.cpp b/lib/MC/MCMachOStreamer.cpp index 8759f2b51ca..b8640d3b08e 100644 --- a/lib/MC/MCMachOStreamer.cpp +++ b/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/lib/MC/MCParser/ELFAsmParser.cpp b/lib/MC/MCParser/ELFAsmParser.cpp index b3d5f11e0eb..d074ea9d781 100644 --- a/lib/MC/MCParser/ELFAsmParser.cpp +++ b/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/test/MC/ELF/type.s b/test/MC/ELF/type.s index 8738433de66..a2d07878ea5 100644 --- a/test/MC/ELF/type.s +++ b/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) -- 2.34.1