1// REQUIRES: x86-registered-target
2// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t
3// RUN: llvm-readelf --notes %t | FileCheck %s --check-prefix=GNU
4// RUN: llvm-readobj --elf-output-style LLVM --notes %t | FileCheck %s --check-prefix=LLVM
5
6// GNU:      Displaying notes found in: .note.gnu.property
7// GNU-NEXT:   Owner                 Data size       Description
8// GNU-NEXT:   GNU                   0x00000004      NT_GNU_PROPERTY_TYPE_0 (property note)
9// GNU-NEXT:     Properties:  <corrupted GNU_PROPERTY_TYPE_0>
10
11// LLVM:      Notes [
12// LLVM-NEXT:   NoteSection {
13// LLVM-NEXT:     Name: .note.gnu.property
14// LLVM-NEXT:     Offset: 0x40
15// LLVM-NEXT:     Size: 0x14
16// LLVM-NEXT:     Note {
17// LLVM-NEXT:       Owner: GNU
18// LLVM-NEXT:       Data size: 0x4
19// LLVM-NEXT:       Type: NT_GNU_PROPERTY_TYPE_0 (property note)
20// LLVM-NEXT:       Property [
21// LLVM-NEXT:         <corrupted GNU_PROPERTY_TYPE_0>
22// LLVM-NEXT:       ]
23// LLVM-NEXT:     }
24// LLVM-NEXT:   }
25// LLVM-NEXT: ]
26
27// Section below is broken, check we report that.
28
29.section ".note.gnu.property", "a"
30.align 4
31  .long 4           /* Name length is always 4 ("GNU") */
32  .long end - begin /* Data length */
33  .long 5           /* Type: NT_GNU_PROPERTY_TYPE_0 */
34  .asciz "GNU"      /* Name */
35  .p2align 3
36begin:
37  .long 1           /* Type: GNU_PROPERTY_STACK_SIZE */
38end:
39