xref: /llvm-project/llvm/test/tools/llvm-readobj/ELF/note-gnu-property2.s (revision ab930ee7cad8b8bf7968bb8d0c0d72524e2313c4)
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:      NoteSections [
12// LLVM-NEXT:   NoteSection {
13// LLVM-NEXT:     Name: .note.gnu.property
14// LLVM-NEXT:     Offset: 0x40
15// LLVM-NEXT:     Size: 0x18
16// LLVM-NEXT:	  Notes [
17// LLVM-NEXT:		{
18// LLVM-NEXT:			Owner: GNU
19// LLVM-NEXT:			Data size: 0x4
20// LLVM-NEXT:			Type: NT_GNU_PROPERTY_TYPE_0 (property note)
21// LLVM-NEXT:			Property [
22// LLVM-NEXT:				<corrupted GNU_PROPERTY_TYPE_0>
23// LLVM-NEXT:			]
24// LLVM-NEXT:		}
25// LLVM-NEXT:	  ]
26// LLVM-NEXT:   }
27// LLVM-NEXT: ]
28
29// Section below is broken, check we report that.
30
31.section ".note.gnu.property", "a"
32.align 4
33  .long 4           /* Name length is always 4 ("GNU") */
34  .long 4           /* Data length (corrupted) */
35  .long 5           /* Type: NT_GNU_PROPERTY_TYPE_0 */
36  .asciz "GNU"      /* Name */
37  .p2align 3
38begin:
39  .long 1           /* Type: GNU_PROPERTY_STACK_SIZE */
40  .p2align 3
41end:
42