[clangd] Re-land "support outgoing calls in call hierarchy" (#117673)
[llvm-project.git] / llvm / test / tools / yaml2obj / ELF / content-array.yaml
blob12b6904d66a70bffd26b050822a90190ffa2439e
1 ## Check we are able to describe the content of a section
2 ## using the ContentArray key.
4 ## Check we are able to use ContentArray to create multi-line descriptions
5 ## of section contents with comments on the same line.
6 # RUN: yaml2obj --docnum=1 %s -o %t1
7 # RUN: llvm-readobj --sections --section-data %t1 | FileCheck %s
9 # CHECK:      Section {
10 # CHECK:        Index: 1
11 # CHECK-NEXT:   Name: .foo
12 # CHECK-NEXT:   Type: SHT_PROGBITS
13 # CHECK-NEXT:   Flags [
14 # CHECK-NEXT:   ]
15 # CHECK-NEXT:   Address: 0x0
16 # CHECK-NEXT:   Offset: 0x40
17 # CHECK-NEXT:   Size: 16
18 # CHECK-NEXT:   Link: 0
19 # CHECK-NEXT:   Info: 0
20 # CHECK-NEXT:   AddressAlignment: 0
21 # CHECK-NEXT:   EntrySize: 0
22 # CHECK-NEXT:   SectionData (
23 # CHECK-NEXT:     0000: 11223344 55667788 99AABBCC DDEEFF00
24 # CHECK-NEXT:   )
25 # CHECK-NEXT: }
27 --- !ELF
28 FileHeader:
29   Class: ELFCLASS64
30   Data:  ELFDATA2LSB
31   Type:  ET_DYN
32 Sections:
33   - Name:         .foo
34     Type:         SHT_PROGBITS
35     ContentArray: [ 0x11, 0x22, 0x33, 0x44,                                ## .long 11223344
36                     0x55, 0x66,                                            ## .short 5566.
37                     0x77,                                                  ## .byte 0x77
38                     0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x00 ] ## .quad 0x8899aabbccddeeff00
40 ## Check we do not allow using 'Content' and 'ContentArray' at the same time.
41 # RUN: not yaml2obj --docnum=2 %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=BOTH
42 # BOTH: error: Content and ContentArray can't be used together
44 --- !ELF
45 FileHeader:
46   Class: ELFCLASS64
47   Data:  ELFDATA2LSB
48   Type:  ET_DYN
49 Sections:
50   - Name:         .foo
51     Type:         SHT_PROGBITS
52     Content:      [ 0x0 ]
53     ContentArray: [ 0x1 ]
55 ## Check how the "Size" and the "ContentArray" keys can be used together.
57 ## Case A: check that we report an error when the the value of "Size" is less than the content size.
58 # RUN: not yaml2obj --docnum=3 -DSIZE=1 %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=SIZE-LESS
59 # SIZE-LESS: error: Section size must be greater than or equal to the content size
61 --- !ELF
62 FileHeader:
63   Class: ELFCLASS64
64   Data:  ELFDATA2LSB
65   Type:  ET_DYN
66 Sections:
67   - Name:         .foo
68     Type:         SHT_PROGBITS
69     ContentArray: [ 0x11, 0x22 ]
70     Size:         [[SIZE]]
72 ## Case B: check we are able to produce an output when the value of "Size" is equal
73 ##         to the content size. In this case the "Size" key has no effect.
74 # RUN: yaml2obj --docnum=3 -DSIZE=2 %s -o %t3.eq
75 # RUN: llvm-readobj --sections --section-data %t3.eq | FileCheck %s --check-prefix=SIZE-EQ
77 # SIZE-EQ:      Name: .foo
78 # SIZE-EQ:      SectionData (
79 # SIZE-EQ-NEXT:   0000: 1122 |
80 # SIZE-EQ-NEXT: )
82 ## Case C: check we are able to produce an output when the value of "Size" is greater
83 ##         than the content size. In this case zeroes are added as padding after the
84 ##         specified content.
85 # RUN: yaml2obj --docnum=3 -DSIZE=3 %s -o %t4.gr
86 # RUN: llvm-readobj --sections --section-data %t4.gr | FileCheck %s --check-prefix=SIZE-GR
88 # SIZE-GR:      Name: .foo
89 # SIZE-GR:      SectionData (
90 # SIZE-GR-NEXT:   0000: 112200 |
91 # SIZE-GR-NEXT: )