summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/note-sections.ll
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2016-09-20 20:21:13 +0000
committerPetr Hosek <phosek@chromium.org>2016-09-20 20:21:13 +0000
commit1290355f5ad38d174abca256d2f55c7b1c09912e (patch)
tree7c37268809123ccc975387ea19301b319e4a4e52 /llvm/test/CodeGen/X86/note-sections.ll
parentc7368287b74d2d0867e79944b034de974e776e6e (diff)
downloadbcm5719-llvm-1290355f5ad38d174abca256d2f55c7b1c09912e.tar.gz
bcm5719-llvm-1290355f5ad38d174abca256d2f55c7b1c09912e.zip
Mark ELF sections whose name start with .note as note
Previously, such section would be marked as SHT_PROGBITS which makes it impossible to use an initialized C variable declaration to emit an (allocated) ELF note. The new behavior is also consistent with ELF assembly parser. Differential Revision: https://reviews.llvm.org/D24692 llvm-svn: 282010
Diffstat (limited to 'llvm/test/CodeGen/X86/note-sections.ll')
-rw-r--r--llvm/test/CodeGen/X86/note-sections.ll19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/note-sections.ll b/llvm/test/CodeGen/X86/note-sections.ll
new file mode 100644
index 00000000000..d8a3d931419
--- /dev/null
+++ b/llvm/test/CodeGen/X86/note-sections.ll
@@ -0,0 +1,19 @@
+; RUN: llc -mtriple x86_64-pc-linux < %s | FileCheck %s
+
+%struct.note = type { %struct.Elf32_Nhdr, [7 x i8], %struct.payload }
+%struct.Elf32_Nhdr = type { i32, i32, i32 }
+%struct.payload = type { i16 }
+
+@foonote = internal constant %struct.note { %struct.Elf32_Nhdr { i32 7, i32 2, i32 17 }, [7 x i8] c"foobar\00", %struct.payload { i16 23 } }, section ".note.foo", align 4
+
+; CHECK: .section .note.foo,"a",@note
+; CHECK-NEXT: .p2align 2
+; CHECK-NEXT: foonote:
+; CHECK-NEXT: .long 7
+; CHECK-NEXT: .long 2
+; CHECK-NEXT: .long 17
+; CHECK-NEXT: .asciz "foobar"
+; CHECK-NEXT: .zero 1
+; CHECK-NEXT: .short 23
+; CHECK-NEXT: .zero 2
+; CHECK-NEXT: .size foonote, 24
OpenPOWER on IntegriCloud