/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/lib/Support/Dwarf.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | //===-- llvm/Support/Dwarf.cpp - Dwarf Framework ----------------*- C++ -*-===// |
2 | | // |
3 | | // The LLVM Compiler Infrastructure |
4 | | // |
5 | | // This file is distributed under the University of Illinois Open Source |
6 | | // License. See LICENSE.TXT for details. |
7 | | // |
8 | | //===----------------------------------------------------------------------===// |
9 | | // |
10 | | // This file contains support for generic dwarf information. |
11 | | // |
12 | | //===----------------------------------------------------------------------===// |
13 | | |
14 | | #include "llvm/Support/Dwarf.h" |
15 | | #include "llvm/ADT/StringSwitch.h" |
16 | | #include "llvm/Support/ErrorHandling.h" |
17 | | |
18 | | using namespace llvm; |
19 | | using namespace dwarf; |
20 | | |
21 | 26.0k | StringRef llvm::dwarf::TagString(unsigned Tag) { |
22 | 26.0k | switch (Tag) { |
23 | 16 | default: |
24 | 16 | return StringRef(); |
25 | 16 | #define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \ |
26 | 26.0k | case DW_TAG_##NAME: \ |
27 | 26.0k | return "DW_TAG_" #NAME; |
28 | 16 | #include "llvm/Support/Dwarf.def" |
29 | 26.0k | } |
30 | 26.0k | } |
31 | | |
32 | 2.80k | unsigned llvm::dwarf::getTag(StringRef TagString) { |
33 | 2.80k | return StringSwitch<unsigned>(TagString) |
34 | 2.80k | #define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \ |
35 | 229k | .Case("DW_TAG_" #NAME, DW_TAG_##NAME) |
36 | 2.80k | #include "llvm/Support/Dwarf.def" |
37 | 2.80k | .Default(DW_TAG_invalid); |
38 | 2.80k | } |
39 | | |
40 | 0 | unsigned llvm::dwarf::TagVersion(dwarf::Tag Tag) { |
41 | 0 | switch (Tag) { |
42 | 0 | default: |
43 | 0 | return 0; |
44 | 0 | #define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \ |
45 | 0 | case DW_TAG_##NAME: \ |
46 | 0 | return VERSION; |
47 | 0 | #include "llvm/Support/Dwarf.def" |
48 | 0 | } |
49 | 0 | } |
50 | | |
51 | 0 | unsigned llvm::dwarf::TagVendor(dwarf::Tag Tag) { |
52 | 0 | switch (Tag) { |
53 | 0 | default: |
54 | 0 | return 0; |
55 | 0 | #define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR) \ |
56 | 0 | case DW_TAG_##NAME: \ |
57 | 0 | return DWARF_VENDOR_##VENDOR; |
58 | 0 | #include "llvm/Support/Dwarf.def" |
59 | 0 | } |
60 | 0 | } |
61 | | |
62 | 13.9k | StringRef llvm::dwarf::ChildrenString(unsigned Children) { |
63 | 13.9k | switch (Children) { |
64 | 7.58k | case DW_CHILDREN_no: return "DW_CHILDREN_no"; |
65 | 6.38k | case DW_CHILDREN_yes: return "DW_CHILDREN_yes"; |
66 | 13.9k | } |
67 | 0 | return StringRef(); |
68 | 13.9k | } |
69 | | |
70 | 98.3k | StringRef llvm::dwarf::AttributeString(unsigned Attribute) { |
71 | 98.3k | switch (Attribute) { |
72 | 84 | default: |
73 | 84 | return StringRef(); |
74 | 84 | #define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR) \ |
75 | 98.2k | case DW_AT_##NAME: \ |
76 | 98.2k | return "DW_AT_" #NAME; |
77 | 84 | #include "llvm/Support/Dwarf.def" |
78 | 98.3k | } |
79 | 98.3k | } |
80 | | |
81 | 0 | unsigned llvm::dwarf::AttributeVersion(dwarf::Attribute Attribute) { |
82 | 0 | switch (Attribute) { |
83 | 0 | default: |
84 | 0 | return 0; |
85 | 0 | #define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR) \ |
86 | 0 | case DW_AT_##NAME: \ |
87 | 0 | return VERSION; |
88 | 0 | #include "llvm/Support/Dwarf.def" |
89 | 0 | } |
90 | 0 | } |
91 | | |
92 | 0 | unsigned llvm::dwarf::AttributeVendor(dwarf::Attribute Attribute) { |
93 | 0 | switch (Attribute) { |
94 | 0 | default: |
95 | 0 | return 0; |
96 | 0 | #define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR) \ |
97 | 0 | case DW_AT_##NAME: \ |
98 | 0 | return DWARF_VENDOR_##VENDOR; |
99 | 0 | #include "llvm/Support/Dwarf.def" |
100 | 0 | } |
101 | 0 | } |
102 | | |
103 | 99.3k | StringRef llvm::dwarf::FormEncodingString(unsigned Encoding) { |
104 | 99.3k | switch (Encoding) { |
105 | 0 | default: |
106 | 0 | return StringRef(); |
107 | 0 | #define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR) \ |
108 | 99.3k | case DW_FORM_##NAME: \ |
109 | 99.3k | return "DW_FORM_" #NAME; |
110 | 0 | #include "llvm/Support/Dwarf.def" |
111 | 99.3k | } |
112 | 99.3k | } |
113 | | |
114 | 0 | unsigned llvm::dwarf::FormVersion(dwarf::Form Form) { |
115 | 0 | switch (Form) { |
116 | 0 | default: |
117 | 0 | return 0; |
118 | 0 | #define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR) \ |
119 | 0 | case DW_FORM_##NAME: \ |
120 | 0 | return VERSION; |
121 | 0 | #include "llvm/Support/Dwarf.def" |
122 | 0 | } |
123 | 0 | } |
124 | | |
125 | 0 | unsigned llvm::dwarf::FormVendor(dwarf::Form Form) { |
126 | 0 | switch (Form) { |
127 | 0 | default: |
128 | 0 | return 0; |
129 | 0 | #define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR) \ |
130 | 0 | case DW_FORM_##NAME: \ |
131 | 0 | return DWARF_VENDOR_##VENDOR; |
132 | 0 | #include "llvm/Support/Dwarf.def" |
133 | 0 | } |
134 | 0 | } |
135 | | |
136 | 1.04k | StringRef llvm::dwarf::OperationEncodingString(unsigned Encoding) { |
137 | 1.04k | switch (Encoding) { |
138 | 0 | default: |
139 | 0 | return StringRef(); |
140 | 0 | #define HANDLE_DW_OP(ID, NAME, VERSION, VENDOR) \ |
141 | 989 | case DW_OP_##NAME: \ |
142 | 989 | return "DW_OP_" #NAME; |
143 | 0 | #include "llvm/Support/Dwarf.def" |
144 | 55 | case DW_OP_LLVM_fragment: |
145 | 55 | return "DW_OP_LLVM_fragment"; |
146 | 1.04k | } |
147 | 1.04k | } |
148 | | |
149 | 292 | unsigned llvm::dwarf::getOperationEncoding(StringRef OperationEncodingString) { |
150 | 292 | return StringSwitch<unsigned>(OperationEncodingString) |
151 | 292 | #define HANDLE_DW_OP(ID, NAME, VERSION, VENDOR) \ |
152 | 48.7k | .Case("DW_OP_" #NAME, DW_OP_##NAME) |
153 | 292 | #include "llvm/Support/Dwarf.def" |
154 | 292 | .Case("DW_OP_LLVM_fragment", DW_OP_LLVM_fragment) |
155 | 292 | .Default(0); |
156 | 292 | } |
157 | | |
158 | 0 | unsigned llvm::dwarf::OperationVersion(dwarf::LocationAtom Op) { |
159 | 0 | switch (Op) { |
160 | 0 | default: |
161 | 0 | return 0; |
162 | 0 | #define HANDLE_DW_OP(ID, NAME, VERSION, VENDOR) \ |
163 | 0 | case DW_OP_##NAME: \ |
164 | 0 | return VERSION; |
165 | 0 | #include "llvm/Support/Dwarf.def" |
166 | 0 | } |
167 | 0 | } |
168 | | |
169 | 0 | unsigned llvm::dwarf::OperationVendor(dwarf::LocationAtom Op) { |
170 | 0 | switch (Op) { |
171 | 0 | default: |
172 | 0 | return 0; |
173 | 0 | #define HANDLE_DW_OP(ID, NAME, VERSION, VENDOR) \ |
174 | 0 | case DW_OP_##NAME: \ |
175 | 0 | return DWARF_VENDOR_##VENDOR; |
176 | 0 | #include "llvm/Support/Dwarf.def" |
177 | 0 | } |
178 | 0 | } |
179 | | |
180 | 1.07k | StringRef llvm::dwarf::AttributeEncodingString(unsigned Encoding) { |
181 | 1.07k | switch (Encoding) { |
182 | 3 | default: |
183 | 3 | return StringRef(); |
184 | 3 | #define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) \ |
185 | 1.06k | case DW_ATE_##NAME: \ |
186 | 1.06k | return "DW_ATE_" #NAME; |
187 | 3 | #include "llvm/Support/Dwarf.def" |
188 | 1.07k | } |
189 | 1.07k | } |
190 | | |
191 | 1.00k | unsigned llvm::dwarf::getAttributeEncoding(StringRef EncodingString) { |
192 | 1.00k | return StringSwitch<unsigned>(EncodingString) |
193 | 1.00k | #define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) \ |
194 | 18.1k | .Case("DW_ATE_" #NAME, DW_ATE_##NAME) |
195 | 1.00k | #include "llvm/Support/Dwarf.def" |
196 | 1.00k | .Default(0); |
197 | 1.00k | } |
198 | | |
199 | 0 | unsigned llvm::dwarf::AttributeEncodingVersion(dwarf::TypeKind ATE) { |
200 | 0 | switch (ATE) { |
201 | 0 | default: |
202 | 0 | return 0; |
203 | 0 | #define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) \ |
204 | 0 | case DW_ATE_##NAME: \ |
205 | 0 | return VERSION; |
206 | 0 | #include "llvm/Support/Dwarf.def" |
207 | 0 | } |
208 | 0 | } |
209 | | |
210 | 0 | unsigned llvm::dwarf::AttributeEncodingVendor(dwarf::TypeKind ATE) { |
211 | 0 | switch (ATE) { |
212 | 0 | default: |
213 | 0 | return 0; |
214 | 0 | #define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) \ |
215 | 0 | case DW_ATE_##NAME: \ |
216 | 0 | return DWARF_VENDOR_##VENDOR; |
217 | 0 | #include "llvm/Support/Dwarf.def" |
218 | 0 | } |
219 | 0 | } |
220 | | |
221 | 0 | StringRef llvm::dwarf::DecimalSignString(unsigned Sign) { |
222 | 0 | switch (Sign) { |
223 | 0 | case DW_DS_unsigned: return "DW_DS_unsigned"; |
224 | 0 | case DW_DS_leading_overpunch: return "DW_DS_leading_overpunch"; |
225 | 0 | case DW_DS_trailing_overpunch: return "DW_DS_trailing_overpunch"; |
226 | 0 | case DW_DS_leading_separate: return "DW_DS_leading_separate"; |
227 | 0 | case DW_DS_trailing_separate: return "DW_DS_trailing_separate"; |
228 | 0 | } |
229 | 0 | return StringRef(); |
230 | 0 | } |
231 | | |
232 | 0 | StringRef llvm::dwarf::EndianityString(unsigned Endian) { |
233 | 0 | switch (Endian) { |
234 | 0 | case DW_END_default: return "DW_END_default"; |
235 | 0 | case DW_END_big: return "DW_END_big"; |
236 | 0 | case DW_END_little: return "DW_END_little"; |
237 | 0 | case DW_END_lo_user: return "DW_END_lo_user"; |
238 | 0 | case DW_END_hi_user: return "DW_END_hi_user"; |
239 | 0 | } |
240 | 0 | return StringRef(); |
241 | 0 | } |
242 | | |
243 | 255 | StringRef llvm::dwarf::AccessibilityString(unsigned Access) { |
244 | 255 | switch (Access) { |
245 | 255 | // Accessibility codes |
246 | 173 | case DW_ACCESS_public: return "DW_ACCESS_public"; |
247 | 20 | case DW_ACCESS_protected: return "DW_ACCESS_protected"; |
248 | 62 | case DW_ACCESS_private: return "DW_ACCESS_private"; |
249 | 255 | } |
250 | 0 | return StringRef(); |
251 | 255 | } |
252 | | |
253 | 2 | StringRef llvm::dwarf::VisibilityString(unsigned Visibility) { |
254 | 2 | switch (Visibility) { |
255 | 2 | case DW_VIS_local: return "DW_VIS_local"; |
256 | 0 | case DW_VIS_exported: return "DW_VIS_exported"; |
257 | 0 | case DW_VIS_qualified: return "DW_VIS_qualified"; |
258 | 2 | } |
259 | 0 | return StringRef(); |
260 | 2 | } |
261 | | |
262 | 362 | StringRef llvm::dwarf::VirtualityString(unsigned Virtuality) { |
263 | 362 | switch (Virtuality) { |
264 | 2 | default: |
265 | 2 | return StringRef(); |
266 | 2 | #define HANDLE_DW_VIRTUALITY(ID, NAME) \ |
267 | 360 | case DW_VIRTUALITY_##NAME: \ |
268 | 360 | return "DW_VIRTUALITY_" #NAME; |
269 | 2 | #include "llvm/Support/Dwarf.def" |
270 | 362 | } |
271 | 362 | } |
272 | | |
273 | 62 | unsigned llvm::dwarf::getVirtuality(StringRef VirtualityString) { |
274 | 62 | return StringSwitch<unsigned>(VirtualityString) |
275 | 62 | #define HANDLE_DW_VIRTUALITY(ID, NAME) \ |
276 | 186 | .Case("DW_VIRTUALITY_" #NAME, DW_VIRTUALITY_##NAME) |
277 | 62 | #include "llvm/Support/Dwarf.def" |
278 | 62 | .Default(DW_VIRTUALITY_invalid); |
279 | 62 | } |
280 | | |
281 | 1.41k | StringRef llvm::dwarf::LanguageString(unsigned Language) { |
282 | 1.41k | switch (Language) { |
283 | 3 | default: |
284 | 3 | return StringRef(); |
285 | 3 | #define HANDLE_DW_LANG(ID, NAME, VERSION, VENDOR) \ |
286 | 1.41k | case DW_LANG_##NAME: \ |
287 | 1.41k | return "DW_LANG_" #NAME; |
288 | 3 | #include "llvm/Support/Dwarf.def" |
289 | 1.41k | } |
290 | 1.41k | } |
291 | | |
292 | 1.29k | unsigned llvm::dwarf::getLanguage(StringRef LanguageString) { |
293 | 1.29k | return StringSwitch<unsigned>(LanguageString) |
294 | 1.29k | #define HANDLE_DW_LANG(ID, NAME, VERSION, VENDOR) \ |
295 | 51.9k | .Case("DW_LANG_" #NAME, DW_LANG_##NAME) |
296 | 1.29k | #include "llvm/Support/Dwarf.def" |
297 | 1.29k | .Default(0); |
298 | 1.29k | } |
299 | | |
300 | 0 | unsigned llvm::dwarf::LanguageVersion(dwarf::SourceLanguage Lang) { |
301 | 0 | switch (Lang) { |
302 | 0 | default: |
303 | 0 | return 0; |
304 | 0 | #define HANDLE_DW_LANG(ID, NAME, VERSION, VENDOR) \ |
305 | 0 | case DW_LANG_##NAME: \ |
306 | 0 | return VERSION; |
307 | 0 | #include "llvm/Support/Dwarf.def" |
308 | 0 | } |
309 | 0 | } |
310 | | |
311 | 0 | unsigned llvm::dwarf::LanguageVendor(dwarf::SourceLanguage Lang) { |
312 | 0 | switch (Lang) { |
313 | 0 | default: |
314 | 0 | return 0; |
315 | 0 | #define HANDLE_DW_LANG(ID, NAME, VERSION, VENDOR) \ |
316 | 0 | case DW_LANG_##NAME: \ |
317 | 0 | return DWARF_VENDOR_##VENDOR; |
318 | 0 | #include "llvm/Support/Dwarf.def" |
319 | 0 | } |
320 | 0 | } |
321 | | |
322 | 0 | StringRef llvm::dwarf::CaseString(unsigned Case) { |
323 | 0 | switch (Case) { |
324 | 0 | case DW_ID_case_sensitive: return "DW_ID_case_sensitive"; |
325 | 0 | case DW_ID_up_case: return "DW_ID_up_case"; |
326 | 0 | case DW_ID_down_case: return "DW_ID_down_case"; |
327 | 0 | case DW_ID_case_insensitive: return "DW_ID_case_insensitive"; |
328 | 0 | } |
329 | 0 | return StringRef(); |
330 | 0 | } |
331 | | |
332 | 50 | StringRef llvm::dwarf::ConventionString(unsigned CC) { |
333 | 50 | switch (CC) { |
334 | 0 | default: |
335 | 0 | return StringRef(); |
336 | 0 | #define HANDLE_DW_CC(ID, NAME) \ |
337 | 50 | case DW_CC_##NAME: \ |
338 | 50 | return "DW_CC_" #NAME; |
339 | 0 | #include "llvm/Support/Dwarf.def" |
340 | 50 | } |
341 | 50 | } |
342 | | |
343 | 41 | unsigned llvm::dwarf::getCallingConvention(StringRef CCString) { |
344 | 41 | return StringSwitch<unsigned>(CCString) |
345 | 574 | #define HANDLE_DW_CC(ID, NAME) .Case("DW_CC_" #NAME, DW_CC_##NAME) |
346 | 41 | #include "llvm/Support/Dwarf.def" |
347 | 41 | .Default(0); |
348 | 41 | } |
349 | | |
350 | 69 | StringRef llvm::dwarf::InlineCodeString(unsigned Code) { |
351 | 69 | switch (Code) { |
352 | 0 | case DW_INL_not_inlined: return "DW_INL_not_inlined"; |
353 | 69 | case DW_INL_inlined: return "DW_INL_inlined"; |
354 | 0 | case DW_INL_declared_not_inlined: return "DW_INL_declared_not_inlined"; |
355 | 0 | case DW_INL_declared_inlined: return "DW_INL_declared_inlined"; |
356 | 69 | } |
357 | 0 | return StringRef(); |
358 | 69 | } |
359 | | |
360 | 0 | StringRef llvm::dwarf::ArrayOrderString(unsigned Order) { |
361 | 0 | switch (Order) { |
362 | 0 | case DW_ORD_row_major: return "DW_ORD_row_major"; |
363 | 0 | case DW_ORD_col_major: return "DW_ORD_col_major"; |
364 | 0 | } |
365 | 0 | return StringRef(); |
366 | 0 | } |
367 | | |
368 | 0 | StringRef llvm::dwarf::DiscriminantString(unsigned Discriminant) { |
369 | 0 | switch (Discriminant) { |
370 | 0 | case DW_DSC_label: return "DW_DSC_label"; |
371 | 0 | case DW_DSC_range: return "DW_DSC_range"; |
372 | 0 | } |
373 | 0 | return StringRef(); |
374 | 0 | } |
375 | | |
376 | 2.98k | StringRef llvm::dwarf::LNStandardString(unsigned Standard) { |
377 | 2.98k | switch (Standard) { |
378 | 0 | default: |
379 | 0 | return StringRef(); |
380 | 0 | #define HANDLE_DW_LNS(ID, NAME) \ |
381 | 2.98k | case DW_LNS_##NAME: \ |
382 | 2.98k | return "DW_LNS_" #NAME; |
383 | 0 | #include "llvm/Support/Dwarf.def" |
384 | 2.98k | } |
385 | 2.98k | } |
386 | | |
387 | 0 | StringRef llvm::dwarf::LNExtendedString(unsigned Encoding) { |
388 | 0 | switch (Encoding) { |
389 | 0 | default: |
390 | 0 | return StringRef(); |
391 | 0 | #define HANDLE_DW_LNE(ID, NAME) \ |
392 | 0 | case DW_LNE_##NAME: \ |
393 | 0 | return "DW_LNE_" #NAME; |
394 | 0 | #include "llvm/Support/Dwarf.def" |
395 | 0 | } |
396 | 0 | } |
397 | | |
398 | 1.18k | StringRef llvm::dwarf::MacinfoString(unsigned Encoding) { |
399 | 1.18k | switch (Encoding) { |
400 | 1.18k | // Macinfo Type Encodings |
401 | 1.15k | case DW_MACINFO_define: return "DW_MACINFO_define"; |
402 | 19 | case DW_MACINFO_undef: return "DW_MACINFO_undef"; |
403 | 6 | case DW_MACINFO_start_file: return "DW_MACINFO_start_file"; |
404 | 6 | case DW_MACINFO_end_file: return "DW_MACINFO_end_file"; |
405 | 0 | case DW_MACINFO_vendor_ext: return "DW_MACINFO_vendor_ext"; |
406 | 0 | case DW_MACINFO_invalid: return "DW_MACINFO_invalid"; |
407 | 1.18k | } |
408 | 0 | return StringRef(); |
409 | 1.18k | } |
410 | | |
411 | 23 | unsigned llvm::dwarf::getMacinfo(StringRef MacinfoString) { |
412 | 23 | return StringSwitch<unsigned>(MacinfoString) |
413 | 23 | .Case("DW_MACINFO_define", DW_MACINFO_define) |
414 | 23 | .Case("DW_MACINFO_undef", DW_MACINFO_undef) |
415 | 23 | .Case("DW_MACINFO_start_file", DW_MACINFO_start_file) |
416 | 23 | .Case("DW_MACINFO_end_file", DW_MACINFO_end_file) |
417 | 23 | .Case("DW_MACINFO_vendor_ext", DW_MACINFO_vendor_ext) |
418 | 23 | .Default(DW_MACINFO_invalid); |
419 | 23 | } |
420 | | |
421 | 410 | StringRef llvm::dwarf::CallFrameString(unsigned Encoding) { |
422 | 410 | switch (Encoding) { |
423 | 0 | default: |
424 | 0 | return StringRef(); |
425 | 0 | #define HANDLE_DW_CFA(ID, NAME) \ |
426 | 410 | case DW_CFA_##NAME: \ |
427 | 410 | return "DW_CFA_" #NAME; |
428 | 0 | #include "llvm/Support/Dwarf.def" |
429 | 410 | } |
430 | 410 | } |
431 | | |
432 | 98 | StringRef llvm::dwarf::ApplePropertyString(unsigned Prop) { |
433 | 98 | switch (Prop) { |
434 | 0 | default: |
435 | 0 | return StringRef(); |
436 | 0 | #define HANDLE_DW_APPLE_PROPERTY(ID, NAME) \ |
437 | 98 | case DW_APPLE_PROPERTY_##NAME: \ |
438 | 98 | return "DW_APPLE_PROPERTY_" #NAME; |
439 | 0 | #include "llvm/Support/Dwarf.def" |
440 | 98 | } |
441 | 98 | } |
442 | | |
443 | 21 | StringRef llvm::dwarf::UnitTypeString(unsigned UT) { |
444 | 21 | switch (UT) { |
445 | 0 | default: |
446 | 0 | return StringRef(); |
447 | 0 | #define HANDLE_DW_UT(ID, NAME) \ |
448 | 21 | case DW_UT_##NAME: \ |
449 | 21 | return "DW_UT_" #NAME; |
450 | 0 | #include "llvm/Support/Dwarf.def" |
451 | 21 | } |
452 | 21 | } |
453 | | |
454 | 10.0k | StringRef llvm::dwarf::AtomTypeString(unsigned AT) { |
455 | 10.0k | switch (AT) { |
456 | 0 | case dwarf::DW_ATOM_null: |
457 | 0 | return "DW_ATOM_null"; |
458 | 6.67k | case dwarf::DW_ATOM_die_offset: |
459 | 6.67k | return "DW_ATOM_die_offset"; |
460 | 0 | case DW_ATOM_cu_offset: |
461 | 0 | return "DW_ATOM_cu_offset"; |
462 | 1.70k | case DW_ATOM_die_tag: |
463 | 1.70k | return "DW_ATOM_die_tag"; |
464 | 1.70k | case DW_ATOM_type_flags: |
465 | 1.70k | return "DW_ATOM_type_flags"; |
466 | 10.0k | } |
467 | 0 | return StringRef(); |
468 | 10.0k | } |
469 | | |
470 | 80 | StringRef llvm::dwarf::GDBIndexEntryKindString(GDBIndexEntryKind Kind) { |
471 | 80 | switch (Kind) { |
472 | 0 | case GIEK_NONE: |
473 | 0 | return "NONE"; |
474 | 32 | case GIEK_TYPE: |
475 | 32 | return "TYPE"; |
476 | 26 | case GIEK_VARIABLE: |
477 | 26 | return "VARIABLE"; |
478 | 22 | case GIEK_FUNCTION: |
479 | 22 | return "FUNCTION"; |
480 | 0 | case GIEK_OTHER: |
481 | 0 | return "OTHER"; |
482 | 0 | case GIEK_UNUSED5: |
483 | 0 | return "UNUSED5"; |
484 | 0 | case GIEK_UNUSED6: |
485 | 0 | return "UNUSED6"; |
486 | 0 | case GIEK_UNUSED7: |
487 | 0 | return "UNUSED7"; |
488 | 80 | } |
489 | 0 | llvm_unreachable0 ("Unknown GDBIndexEntryKind value");0 |
490 | 0 | } |
491 | | |
492 | | StringRef |
493 | 80 | llvm::dwarf::GDBIndexEntryLinkageString(GDBIndexEntryLinkage Linkage) { |
494 | 80 | switch (Linkage) { |
495 | 59 | case GIEL_EXTERNAL: |
496 | 59 | return "EXTERNAL"; |
497 | 21 | case GIEL_STATIC: |
498 | 21 | return "STATIC"; |
499 | 80 | } |
500 | 0 | llvm_unreachable0 ("Unknown GDBIndexEntryLinkage value");0 |
501 | 0 | } |
502 | | |
503 | 8.06k | StringRef llvm::dwarf::AttributeValueString(uint16_t Attr, unsigned Val) { |
504 | 8.06k | switch (Attr) { |
505 | 233 | case DW_AT_accessibility: |
506 | 233 | return AccessibilityString(Val); |
507 | 8 | case DW_AT_virtuality: |
508 | 8 | return VirtualityString(Val); |
509 | 499 | case DW_AT_language: |
510 | 499 | return LanguageString(Val); |
511 | 424 | case DW_AT_encoding: |
512 | 424 | return AttributeEncodingString(Val); |
513 | 0 | case DW_AT_decimal_sign: |
514 | 0 | return DecimalSignString(Val); |
515 | 0 | case DW_AT_endianity: |
516 | 0 | return EndianityString(Val); |
517 | 2 | case DW_AT_visibility: |
518 | 2 | return VisibilityString(Val); |
519 | 0 | case DW_AT_identifier_case: |
520 | 0 | return CaseString(Val); |
521 | 2 | case DW_AT_calling_convention: |
522 | 2 | return ConventionString(Val); |
523 | 69 | case DW_AT_inline: |
524 | 69 | return InlineCodeString(Val); |
525 | 0 | case DW_AT_ordering: |
526 | 0 | return ArrayOrderString(Val); |
527 | 0 | case DW_AT_discr_value: |
528 | 0 | return DiscriminantString(Val); |
529 | 8.06k | } |
530 | 8.06k | |
531 | 6.83k | return StringRef(); |
532 | 8.06k | } |
533 | | |
534 | | bool llvm::dwarf::isValidFormForVersion(Form F, unsigned Version, |
535 | 0 | bool ExtensionsOk) { |
536 | 0 | if (FormVendor(F) == DWARF_VENDOR_DWARF0 ) {0 |
537 | 0 | unsigned FV = FormVersion(F); |
538 | 0 | return FV > 0 && FV <= Version; |
539 | 0 | } |
540 | 0 | return ExtensionsOk; |
541 | 0 | } |