1## Test that llvm-readobj is able to recognize LLVMOMPOFFLOAD ELF notes.
2
3# RUN: yaml2obj %s -o %t.64le -DBITS=64 -DENCODING=LSB
4# RUN: llvm-readobj --notes %t.64le | FileCheck %s --match-full-lines --check-prefix=NOTES
5# RUN: llvm-readelf --notes %t.64le | FileCheck %s --match-full-lines --check-prefix=NOTES-GNU
6# RUN: yaml2obj %s -o %t.64be -DBITS=64 -DENCODING=MSB
7# RUN: llvm-readobj --notes %t.64be | FileCheck %s --match-full-lines --check-prefix=NOTES
8# RUN: llvm-readelf --notes %t.64be | FileCheck %s --match-full-lines --check-prefix=NOTES-GNU
9# RUN: yaml2obj %s -o %t.32le -DBITS=32 -DENCODING=LSB
10# RUN: llvm-readobj --notes %t.32le | FileCheck %s --match-full-lines --check-prefix=NOTES
11# RUN: llvm-readelf --notes %t.32le | FileCheck %s --match-full-lines --check-prefix=NOTES-GNU
12# RUN: yaml2obj %s -o %t.32be -DBITS=32 -DENCODING=MSB
13# RUN: llvm-readobj --notes %t.32be | FileCheck %s --match-full-lines --check-prefix=NOTES
14# RUN: llvm-readelf --notes %t.32be | FileCheck %s --match-full-lines --check-prefix=NOTES-GNU
15
16# NOTES:      Notes [
17# NOTES-NEXT:   NoteSection {
18# NOTES-NEXT:     Name: .note.openmp
19# NOTES-NEXT:     Offset: {{.*}}
20# NOTES-NEXT:     Size: {{.*}}
21# NOTES-NEXT:     Note {
22# NOTES-NEXT:       Owner: LLVMOMPOFFLOAD
23# NOTES-NEXT:       Data size: 0x3
24# NOTES-NEXT:       Type: NT_LLVM_OPENMP_OFFLOAD_VERSION (image format version)
25# NOTES-NEXT:       Version: 1.0
26# NOTES-NEXT:     }
27# NOTES-NEXT:     Note {
28# NOTES-NEXT:       Owner: LLVMOMPOFFLOAD
29# NOTES-NEXT:       Data size: 0x4
30# NOTES-NEXT:       Type: NT_LLVM_OPENMP_OFFLOAD_PRODUCER (producing toolchain)
31# NOTES-NEXT:       Producer: LLVM
32# NOTES-NEXT:     }
33# NOTES-NEXT:     Note {
34# NOTES-NEXT:       Owner: LLVMOMPOFFLOAD
35# NOTES-NEXT:       Data size: 0x9
36# NOTES-NEXT:       Type: NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION (producing toolchain version)
37# NOTES-NEXT:       Producer version: 13.0.0git
38# NOTES-NEXT:     }
39# NOTES-NEXT:   }
40# NOTES-NEXT: ]
41
42# NOTES-GNU:      Displaying notes found in: .note.openmp
43# NOTES-GNU-NEXT:   Owner                Data size        Description
44# NOTES-GNU-NEXT:   LLVMOMPOFFLOAD       0x00000003       NT_LLVM_OPENMP_OFFLOAD_VERSION (image format version)
45# NOTES-GNU-NEXT:     Version: 1.0
46# NOTES-GNU-NEXT:   LLVMOMPOFFLOAD       0x00000004       NT_LLVM_OPENMP_OFFLOAD_PRODUCER (producing toolchain)
47# NOTES-GNU-NEXT:     Producer: LLVM
48# NOTES-GNU-NEXT:   LLVMOMPOFFLOAD       0x00000009       NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION (producing toolchain version)
49# NOTES-GNU-NEXT:     Producer version: 13.0.0git
50
51--- !ELF
52FileHeader:
53  Class: ELFCLASS[[BITS]]
54  Data:  ELFDATA2[[ENCODING]]
55  Type:  ET_REL
56Sections:
57  - Name: .note.openmp
58    Type: SHT_NOTE
59    Notes:
60      - Name: LLVMOMPOFFLOAD
61        Type: 1 # NT_LLVM_OPENMP_OFFLOAD_VERSION
62        Desc: '312e30'
63      - Name: LLVMOMPOFFLOAD
64        Type: 2 # NT_LLVM_OPENMP_OFFLOAD_PRODUCER
65        Desc: '4c4c564d'
66      - Name: LLVMOMPOFFLOAD
67        Type: 3 # NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION
68        Desc: '31332e302e30676974'
69