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
diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp
index ef6e0f1..5ff12bc 100644
--- a/lib/MC/ELFObjectWriter.cpp
+++ b/lib/MC/ELFObjectWriter.cpp
@@ -1265,6 +1265,7 @@
   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 0aa89c2..0456b4b 100644
--- a/lib/MC/MCParser/ELFAsmParser.cpp
+++ b/lib/MC/MCParser/ELFAsmParser.cpp
@@ -335,6 +335,8 @@
       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 59568ad..a534897 100644
--- a/lib/MC/MCSectionELF.cpp
+++ b/lib/MC/MCSectionELF.cpp
@@ -92,6 +92,8 @@
     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 38cf8ad..8e40ae8 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: