diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-12-26 21:30:59 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-12-26 21:30:59 +0000 |
commit | 98976610d2c8067efe04042f17486a4b6c746b31 (patch) | |
tree | 9c1c033a420cf76c3d23cdb7713a291a64e8935b | |
parent | 22920b59864cac3b62d158fd4111cfda3c09c67a (diff) | |
download | external_llvm-98976610d2c8067efe04042f17486a4b6c746b31.tar.gz external_llvm-98976610d2c8067efe04042f17486a4b6c746b31.tar.bz2 external_llvm-98976610d2c8067efe04042f17486a4b6c746b31.zip |
Add support for @note. Patch by Jörg Sonnenberger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122568 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/MC/ELFObjectWriter.cpp | 1 | ||||
-rw-r--r-- | lib/MC/MCParser/ELFAsmParser.cpp | 2 | ||||
-rw-r--r-- | lib/MC/MCSectionELF.cpp | 2 | ||||
-rw-r--r-- | test/MC/ELF/section.s | 15 |
4 files changed, 19 insertions, 1 deletions
diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index ef6e0f1414..5ff12bc01f 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -1265,6 +1265,7 @@ void ELFObjectWriter::WriteSection(MCAssembler &Asm, case ELF::SHT_PROGBITS: case ELF::SHT_STRTAB: case ELF::SHT_NOBITS: + case ELF::SHT_NOTE: case ELF::SHT_NULL: case ELF::SHT_ARM_ATTRIBUTES: // Nothing to do. diff --git a/lib/MC/MCParser/ELFAsmParser.cpp b/lib/MC/MCParser/ELFAsmParser.cpp index 0aa89c20a2..0456b4bac4 100644 --- a/lib/MC/MCParser/ELFAsmParser.cpp +++ b/lib/MC/MCParser/ELFAsmParser.cpp @@ -335,6 +335,8 @@ bool ELFAsmParser::ParseDirectiveSection(StringRef, SMLoc) { Type = MCSectionELF::SHT_NOBITS; else if (TypeName == "progbits") Type = MCSectionELF::SHT_PROGBITS; + else if (TypeName == "note") + Type = MCSectionELF::SHT_NOTE; else return TokError("unknown section type"); } diff --git a/lib/MC/MCSectionELF.cpp b/lib/MC/MCSectionELF.cpp index 59568adf70..a53489790d 100644 --- a/lib/MC/MCSectionELF.cpp +++ b/lib/MC/MCSectionELF.cpp @@ -92,6 +92,8 @@ void MCSectionELF::PrintSwitchToSection(const MCAsmInfo &MAI, OS << "preinit_array"; else if (Type == MCSectionELF::SHT_NOBITS) OS << "nobits"; + else if (Type == MCSectionELF::SHT_NOTE) + OS << "note"; else if (Type == MCSectionELF::SHT_PROGBITS) OS << "progbits"; diff --git a/test/MC/ELF/section.s b/test/MC/ELF/section.s index 38cf8ad435..8e40ae8c04 100644 --- a/test/MC/ELF/section.s +++ b/test/MC/ELF/section.s @@ -12,7 +12,7 @@ // CHECK: ('sh_name', 0x00000033) # '.note.GNU-' // CHECK: ('sh_name', 0x0000003e) # '-.note.GNU' -// Test that the dafults are used +// Test that the defaults are used .section .init .section .fini @@ -67,6 +67,19 @@ // CHECK-NEXT: ('sh_entsize', 0x00000000) // CHECK-NEXT: ), +.section .note.test,"",@note +// CHECK: (('sh_name', 0x00000061) # '.note.test' +// CHECK-NEXT: ('sh_type', 0x00000007) +// CHECK-NEXT: ('sh_flags', 0x00000000) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000050) +// CHECK-NEXT: ('sh_size', 0x00000000) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000001) +// CHECK-NEXT: ('sh_entsize', 0x00000000) +// CHECK-NEXT: ), + // Test that we can parse these foo: bar: |