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
This commit is contained in:
Rafael Espindola 2010-12-26 21:30:59 +00:00
parent 22920b5986
commit 98976610d2
4 changed files with 19 additions and 1 deletions

View File

@ -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.

View File

@ -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");
}

View File

@ -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";

View File

@ -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: