xref: /llvm-project/llvm/test/tools/llvm-dwarfdump/X86/verify_file_encoding.yaml (revision 52961491ca347e7c8766dc7c45841bacac6a4470)
1# RUN: yaml2obj %s | not llvm-dwarfdump --verify - | FileCheck %s --implicit-check-not=error:
2
3# CHECK:      error: DIE has DW_AT_decl_file with invalid encoding{{[[:space:]]}}
4# CHECK-NEXT: 0x0000001a: DW_TAG_subprogram
5# CHECK-NEXT:               DW_AT_name        [DW_FORM_strp] ( .debug_str[0x0000000d] = "main")
6# CHECK-NEXT:               DW_AT_low_pc      [DW_FORM_addr] (0x0000000000001000)
7# CHECK-NEXT:               DW_AT_high_pc     [DW_FORM_addr] (0x0000000000002000)
8# CHECK-NEXT:               DW_AT_decl_file   [DW_FORM_strp] ( .debug_str[0x00000012] = "")
9# CHECK-NEXT:               DW_AT_call_line   [DW_FORM_data1] (5){{[[:space:]]}}
10# CHECK-NEXT: error: DIE has DW_AT_call_file with invalid encoding{{[[:space:]]}}
11# CHECK-NEXT: 0x00000034: DW_TAG_inlined_subroutine
12# CHECK-NEXT:               DW_AT_name        [DW_FORM_strp] ( .debug_str[0x00000013] = "inline1")
13# CHECK-NEXT:               DW_AT_low_pc      [DW_FORM_addr] (0x0000000000001100)
14# CHECK-NEXT:               DW_AT_high_pc     [DW_FORM_data4] (0x00000100)
15# CHECK-NEXT:               DW_AT_call_file   [DW_FORM_strp] ( .debug_str[0x00000012] = "")
16# CHECK-NEXT:               DW_AT_call_line   [DW_FORM_data1] (10){{[[:space:]]}}
17# CHECK-NEXT: error: DIE has DW_AT_decl_file with invalid encoding{{[[:space:]]}}
18# CHECK-NEXT: 0x0000004a: DW_TAG_subprogram
19# CHECK-NEXT:               DW_AT_name        [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo")
20# CHECK-NEXT:               DW_AT_low_pc      [DW_FORM_addr] (0x0000000000002000)
21# CHECK-NEXT:               DW_AT_high_pc     [DW_FORM_addr] (0x0000000000003000)
22# CHECK-NEXT:               DW_AT_decl_file   [DW_FORM_sdata] (2)
23# CHECK-NEXT:               DW_AT_decl_line   [DW_FORM_sdata] (3)
24# CHECK-NEXT:               DW_AT_call_file   [DW_FORM_sdata] (4)
25# CHECK-NEXT:               DW_AT_call_line   [DW_FORM_sdata] (5){{[[:space:]]}}
26# CHECK-NEXT: error: DIE has DW_AT_decl_line with invalid encoding{{[[:space:]]}}
27# CHECK-NEXT: 0x0000004a: DW_TAG_subprogram
28# CHECK-NEXT:               DW_AT_name        [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo")
29# CHECK-NEXT:               DW_AT_low_pc      [DW_FORM_addr] (0x0000000000002000)
30# CHECK-NEXT:               DW_AT_high_pc     [DW_FORM_addr] (0x0000000000003000)
31# CHECK-NEXT:               DW_AT_decl_file   [DW_FORM_sdata] (2)
32# CHECK-NEXT:               DW_AT_decl_line   [DW_FORM_sdata] (3)
33# CHECK-NEXT:               DW_AT_call_file   [DW_FORM_sdata] (4)
34# CHECK-NEXT:               DW_AT_call_line   [DW_FORM_sdata] (5){{[[:space:]]}}
35# CHECK-NEXT: error: DIE has DW_AT_call_file with invalid encoding{{[[:space:]]}}
36# CHECK-NEXT: 0x0000004a: DW_TAG_subprogram
37# CHECK-NEXT:               DW_AT_name        [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo")
38# CHECK-NEXT:               DW_AT_low_pc      [DW_FORM_addr] (0x0000000000002000)
39# CHECK-NEXT:               DW_AT_high_pc     [DW_FORM_addr] (0x0000000000003000)
40# CHECK-NEXT:               DW_AT_decl_file   [DW_FORM_sdata] (2)
41# CHECK-NEXT:               DW_AT_decl_line   [DW_FORM_sdata] (3)
42# CHECK-NEXT:               DW_AT_call_file   [DW_FORM_sdata] (4)
43# CHECK-NEXT:               DW_AT_call_line   [DW_FORM_sdata] (5){{[[:space:]]}}
44# CHECK-NEXT: error: DIE has DW_AT_call_line with invalid encoding{{[[:space:]]}}
45# CHECK-NEXT: 0x0000004a: DW_TAG_subprogram
46# CHECK-NEXT:               DW_AT_name        [DW_FORM_strp] ( .debug_str[0x0000001b] = "foo")
47# CHECK-NEXT:               DW_AT_low_pc      [DW_FORM_addr] (0x0000000000002000)
48# CHECK-NEXT:               DW_AT_high_pc     [DW_FORM_addr] (0x0000000000003000)
49# CHECK-NEXT:               DW_AT_decl_file   [DW_FORM_sdata] (2)
50# CHECK-NEXT:               DW_AT_decl_line   [DW_FORM_sdata] (3)
51# CHECK-NEXT:               DW_AT_call_file   [DW_FORM_sdata] (4)
52# CHECK-NEXT:               DW_AT_call_line   [DW_FORM_sdata] (5){{[[:space:]]}}
53# CHECK-NEXT: Verifying dwo Units...
54# CHECK-NEXT: Verifying .debug_line...
55# CHECK-NEXT: Verifying .debug_str_offsets...
56# CHECK-NEXT: error: Aggregated error counts:
57# CHECK-NEXT: error: Invalid encoding in DW_AT_decl_file occurred 4 time(s).
58# CHECK-NEXT: error: Invalid file index in DW_AT_call_line occurred 1 time(s).
59# CHECK-NEXT: error: Invalid file index in DW_AT_decl_line occurred 1 time(s).
60--- !ELF
61FileHeader:
62  Class:   ELFCLASS64
63  Data:    ELFDATA2LSB
64  Type:    ET_EXEC
65  Machine: EM_X86_64
66DWARF:
67  debug_str:
68    - ''
69    - '/tmp/main.c'
70    - main
71    - ''
72    - inline1
73    - foo
74  debug_abbrev:
75    - Table:
76        - Code:            0x0000000000000001
77          Tag:             DW_TAG_compile_unit
78          Children:        DW_CHILDREN_yes
79          Attributes:
80            - Attribute:       DW_AT_name
81              Form:            DW_FORM_strp
82            - Attribute:       DW_AT_language
83              Form:            DW_FORM_data2
84            - Attribute:       DW_AT_low_pc
85              Form:            DW_FORM_addr
86        - Code:            0x0000000000000002
87          Tag:             DW_TAG_subprogram
88          Children:        DW_CHILDREN_yes
89          Attributes:
90            - Attribute:       DW_AT_name
91              Form:            DW_FORM_strp
92            - Attribute:       DW_AT_low_pc
93              Form:            DW_FORM_addr
94            - Attribute:       DW_AT_high_pc
95              Form:            DW_FORM_addr
96            - Attribute:       DW_AT_decl_file
97              Form:            DW_FORM_strp
98            - Attribute:       DW_AT_call_line
99              Form:            DW_FORM_data1
100        - Code:            0x0000000000000003
101          Tag:             DW_TAG_inlined_subroutine
102          Children:        DW_CHILDREN_no
103          Attributes:
104            - Attribute:       DW_AT_name
105              Form:            DW_FORM_strp
106            - Attribute:       DW_AT_low_pc
107              Form:            DW_FORM_addr
108            - Attribute:       DW_AT_high_pc
109              Form:            DW_FORM_data4
110            - Attribute:       DW_AT_call_file
111              Form:            DW_FORM_strp
112            - Attribute:       DW_AT_call_line
113              Form:            DW_FORM_data1
114        - Code:            0x0000000000000004
115          Tag:             DW_TAG_subprogram
116          Children:        DW_CHILDREN_no
117          Attributes:
118            - Attribute:       DW_AT_name
119              Form:            DW_FORM_strp
120            - Attribute:       DW_AT_low_pc
121              Form:            DW_FORM_addr
122            - Attribute:       DW_AT_high_pc
123              Form:            DW_FORM_addr
124            - Attribute:       DW_AT_decl_file
125              Form:            DW_FORM_sdata
126            - Attribute:       DW_AT_decl_line
127              Form:            DW_FORM_sdata
128            - Attribute:       DW_AT_call_file
129              Form:            DW_FORM_sdata
130            - Attribute:       DW_AT_call_line
131              Form:            DW_FORM_sdata
132  debug_info:
133    - Length:          0x0000000000000061
134      Version:         4
135      AbbrOffset:      0x0000000000000000
136      AddrSize:        8
137      Entries:
138        - AbbrCode:        0x00000001
139          Values:
140            - Value:           0x0000000000000001
141            - Value:           0x0000000000000002
142            - Value:           0x0000000000000000
143        - AbbrCode:        0x00000002
144          Values:
145            - Value:           0x000000000000000D
146            - Value:           0x0000000000001000
147            - Value:           0x0000000000002000
148            - Value:           0x0000000000000012
149            - Value:           0x0000000000000005
150        - AbbrCode:        0x00000003
151          Values:
152            - Value:           0x0000000000000013
153            - Value:           0x0000000000001100
154            - Value:           0x0000000000000100
155            - Value:           0x0000000000000012
156            - Value:           0x000000000000000A
157        - AbbrCode:        0x00000004
158          Values:
159            - Value:           0x000000000000001B
160            - Value:           0x0000000000002000
161            - Value:           0x0000000000003000
162            - Value:           0x0000000000000002
163            - Value:           0x0000000000000003
164            - Value:           0x0000000000000004
165            - Value:           0x0000000000000005
166        - AbbrCode:        0x00000000
167          Values:          []
168        - AbbrCode:        0x00000000
169          Values:          []
170...
171