blob: f13da62e4a87cdbb6ea9fa33dfdc6617388d256d [file] [log] [blame]
Jim Laskey22e47b92006-02-27 12:43:29 +00001//===-- llvm/Support/Dwarf.cpp - Dwarf Framework ----------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
Chris Lattnerf3ebc3f2007-12-29 20:36:04 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Jim Laskey22e47b92006-02-27 12:43:29 +00007//
8//===----------------------------------------------------------------------===//
9//
10// This file contains support for generic dwarf information.
11//
12//===----------------------------------------------------------------------===//
13
14#include "llvm/Support/Dwarf.h"
Duncan P. N. Exon Smith6f5546c2015-02-03 21:16:49 +000015#include "llvm/ADT/StringSwitch.h"
David Blaikied0a869d2013-09-19 22:19:37 +000016#include "llvm/Support/ErrorHandling.h"
17
Chris Lattner3b326722009-12-29 07:28:33 +000018using namespace llvm;
19using namespace dwarf;
Jim Laskey22e47b92006-02-27 12:43:29 +000020
Mehdi Amini149f6ea2016-10-05 05:59:29 +000021StringRef llvm::dwarf::TagString(unsigned Tag) {
Mike Stump889285d2009-05-13 23:23:20 +000022 switch (Tag) {
Mehdi Amini149f6ea2016-10-05 05:59:29 +000023 default:
24 return StringRef();
Duncan P. N. Exon Smith981811e2015-02-03 21:13:16 +000025#define HANDLE_DW_TAG(ID, NAME) \
26 case DW_TAG_##NAME: \
27 return "DW_TAG_" #NAME;
28#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +000029 }
Jim Laskey22e47b92006-02-27 12:43:29 +000030}
31
Duncan P. N. Exon Smith6f5546c2015-02-03 21:16:49 +000032unsigned llvm::dwarf::getTag(StringRef TagString) {
33 return StringSwitch<unsigned>(TagString)
34#define HANDLE_DW_TAG(ID, NAME) .Case("DW_TAG_" #NAME, DW_TAG_##NAME)
35#include "llvm/Support/Dwarf.def"
36 .Default(DW_TAG_invalid);
37}
38
Mehdi Amini149f6ea2016-10-05 05:59:29 +000039StringRef llvm::dwarf::ChildrenString(unsigned Children) {
Mike Stump889285d2009-05-13 23:23:20 +000040 switch (Children) {
Jason Molendadd6a4ca2010-06-17 01:23:24 +000041 case DW_CHILDREN_no: return "DW_CHILDREN_no";
42 case DW_CHILDREN_yes: return "DW_CHILDREN_yes";
Jim Laskey22e47b92006-02-27 12:43:29 +000043 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +000044 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +000045}
46
Mehdi Amini149f6ea2016-10-05 05:59:29 +000047StringRef llvm::dwarf::AttributeString(unsigned Attribute) {
Mike Stump889285d2009-05-13 23:23:20 +000048 switch (Attribute) {
Adrian Prantl7e55f172016-10-28 18:21:39 +000049 default:
50 return StringRef();
51#define HANDLE_DW_AT(ID, NAME) \
52 case DW_AT_##NAME: \
53 return "DW_AT_" #NAME;
54#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +000055 }
Jim Laskey22e47b92006-02-27 12:43:29 +000056}
57
Mehdi Amini149f6ea2016-10-05 05:59:29 +000058StringRef llvm::dwarf::FormEncodingString(unsigned Encoding) {
Mike Stump889285d2009-05-13 23:23:20 +000059 switch (Encoding) {
Adrian Prantl23865812016-10-28 22:56:45 +000060 default:
61 return StringRef();
62#define HANDLE_DW_FORM(ID, NAME) \
63 case DW_FORM_##NAME: \
64 return "DW_FORM_" #NAME;
65#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +000066 }
Jim Laskey22e47b92006-02-27 12:43:29 +000067}
68
Mehdi Amini149f6ea2016-10-05 05:59:29 +000069StringRef llvm::dwarf::OperationEncodingString(unsigned Encoding) {
Mike Stump889285d2009-05-13 23:23:20 +000070 switch (Encoding) {
Mehdi Amini149f6ea2016-10-05 05:59:29 +000071 default:
72 return StringRef();
Duncan P. N. Exon Smith8f46ee62015-02-13 01:04:08 +000073#define HANDLE_DW_OP(ID, NAME) \
74 case DW_OP_##NAME: \
75 return "DW_OP_" #NAME;
76#include "llvm/Support/Dwarf.def"
Adrian Prantl941fa752016-12-05 18:04:47 +000077 case DW_OP_LLVM_fragment:
78 return "DW_OP_LLVM_fragment";
Jim Laskey22e47b92006-02-27 12:43:29 +000079 }
Jim Laskey22e47b92006-02-27 12:43:29 +000080}
81
Duncan P. N. Exon Smith3b631d22015-02-13 01:05:00 +000082unsigned llvm::dwarf::getOperationEncoding(StringRef OperationEncodingString) {
83 return StringSwitch<unsigned>(OperationEncodingString)
84#define HANDLE_DW_OP(ID, NAME) .Case("DW_OP_" #NAME, DW_OP_##NAME)
85#include "llvm/Support/Dwarf.def"
Adrian Prantl941fa752016-12-05 18:04:47 +000086 .Case("DW_OP_LLVM_fragment", DW_OP_LLVM_fragment)
Duncan P. N. Exon Smith3b631d22015-02-13 01:05:00 +000087 .Default(0);
88}
89
Mehdi Amini149f6ea2016-10-05 05:59:29 +000090StringRef llvm::dwarf::AttributeEncodingString(unsigned Encoding) {
Mike Stump889285d2009-05-13 23:23:20 +000091 switch (Encoding) {
Mehdi Amini149f6ea2016-10-05 05:59:29 +000092 default:
93 return StringRef();
Duncan P. N. Exon Smithdd563dd2015-02-06 23:45:37 +000094#define HANDLE_DW_ATE(ID, NAME) \
95 case DW_ATE_##NAME: \
96 return "DW_ATE_" #NAME;
97#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +000098 }
Jim Laskey22e47b92006-02-27 12:43:29 +000099}
100
Duncan P. N. Exon Smithe07f13a2015-02-06 23:46:49 +0000101unsigned llvm::dwarf::getAttributeEncoding(StringRef EncodingString) {
102 return StringSwitch<unsigned>(EncodingString)
103#define HANDLE_DW_ATE(ID, NAME) .Case("DW_ATE_" #NAME, DW_ATE_##NAME)
104#include "llvm/Support/Dwarf.def"
105 .Default(0);
106}
107
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000108StringRef llvm::dwarf::DecimalSignString(unsigned Sign) {
Mike Stump889285d2009-05-13 23:23:20 +0000109 switch (Sign) {
Jason Molendadd6a4ca2010-06-17 01:23:24 +0000110 case DW_DS_unsigned: return "DW_DS_unsigned";
111 case DW_DS_leading_overpunch: return "DW_DS_leading_overpunch";
112 case DW_DS_trailing_overpunch: return "DW_DS_trailing_overpunch";
113 case DW_DS_leading_separate: return "DW_DS_leading_separate";
114 case DW_DS_trailing_separate: return "DW_DS_trailing_separate";
Jim Laskey22e47b92006-02-27 12:43:29 +0000115 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000116 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +0000117}
118
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000119StringRef llvm::dwarf::EndianityString(unsigned Endian) {
Mike Stump889285d2009-05-13 23:23:20 +0000120 switch (Endian) {
Jason Molendadd6a4ca2010-06-17 01:23:24 +0000121 case DW_END_default: return "DW_END_default";
122 case DW_END_big: return "DW_END_big";
123 case DW_END_little: return "DW_END_little";
124 case DW_END_lo_user: return "DW_END_lo_user";
125 case DW_END_hi_user: return "DW_END_hi_user";
Jim Laskey22e47b92006-02-27 12:43:29 +0000126 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000127 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +0000128}
129
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000130StringRef llvm::dwarf::AccessibilityString(unsigned Access) {
Mike Stump889285d2009-05-13 23:23:20 +0000131 switch (Access) {
Chris Lattner0709a272009-12-29 21:09:57 +0000132 // Accessibility codes
Jason Molendadd6a4ca2010-06-17 01:23:24 +0000133 case DW_ACCESS_public: return "DW_ACCESS_public";
134 case DW_ACCESS_protected: return "DW_ACCESS_protected";
135 case DW_ACCESS_private: return "DW_ACCESS_private";
Jim Laskey22e47b92006-02-27 12:43:29 +0000136 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000137 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +0000138}
139
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000140StringRef llvm::dwarf::VisibilityString(unsigned Visibility) {
Mike Stump889285d2009-05-13 23:23:20 +0000141 switch (Visibility) {
Jason Molendadd6a4ca2010-06-17 01:23:24 +0000142 case DW_VIS_local: return "DW_VIS_local";
143 case DW_VIS_exported: return "DW_VIS_exported";
144 case DW_VIS_qualified: return "DW_VIS_qualified";
Jim Laskey22e47b92006-02-27 12:43:29 +0000145 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000146 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +0000147}
148
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000149StringRef llvm::dwarf::VirtualityString(unsigned Virtuality) {
Mike Stump889285d2009-05-13 23:23:20 +0000150 switch (Virtuality) {
Duncan P. N. Exon Smithd6f35742015-02-07 00:36:23 +0000151 default:
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000152 return StringRef();
Duncan P. N. Exon Smithd6f35742015-02-07 00:36:23 +0000153#define HANDLE_DW_VIRTUALITY(ID, NAME) \
154 case DW_VIRTUALITY_##NAME: \
155 return "DW_VIRTUALITY_" #NAME;
156#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +0000157 }
Jim Laskey22e47b92006-02-27 12:43:29 +0000158}
159
Duncan P. N. Exon Smithe7e2abe2015-02-07 00:37:15 +0000160unsigned llvm::dwarf::getVirtuality(StringRef VirtualityString) {
161 return StringSwitch<unsigned>(VirtualityString)
162#define HANDLE_DW_VIRTUALITY(ID, NAME) \
163 .Case("DW_VIRTUALITY_" #NAME, DW_VIRTUALITY_##NAME)
164#include "llvm/Support/Dwarf.def"
165 .Default(DW_VIRTUALITY_invalid);
166}
167
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000168StringRef llvm::dwarf::LanguageString(unsigned Language) {
Mike Stump889285d2009-05-13 23:23:20 +0000169 switch (Language) {
Duncan P. N. Exon Smith03179442015-02-06 22:53:19 +0000170 default:
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000171 return StringRef();
Duncan P. N. Exon Smith03179442015-02-06 22:53:19 +0000172#define HANDLE_DW_LANG(ID, NAME) \
173 case DW_LANG_##NAME: \
174 return "DW_LANG_" #NAME;
175#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +0000176 }
Jim Laskey22e47b92006-02-27 12:43:29 +0000177}
178
Duncan P. N. Exon Smithd40af002015-02-06 22:55:13 +0000179unsigned llvm::dwarf::getLanguage(StringRef LanguageString) {
180 return StringSwitch<unsigned>(LanguageString)
181#define HANDLE_DW_LANG(ID, NAME) .Case("DW_LANG_" #NAME, DW_LANG_##NAME)
182#include "llvm/Support/Dwarf.def"
183 .Default(0);
184}
185
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000186StringRef llvm::dwarf::CaseString(unsigned Case) {
Chris Lattner0709a272009-12-29 21:09:57 +0000187 switch (Case) {
Jason Molendadd6a4ca2010-06-17 01:23:24 +0000188 case DW_ID_case_sensitive: return "DW_ID_case_sensitive";
189 case DW_ID_up_case: return "DW_ID_up_case";
190 case DW_ID_down_case: return "DW_ID_down_case";
191 case DW_ID_case_insensitive: return "DW_ID_case_insensitive";
Jim Laskey22e47b92006-02-27 12:43:29 +0000192 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000193 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +0000194}
195
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000196StringRef llvm::dwarf::ConventionString(unsigned CC) {
Reid Klecknerde3d8b52016-06-08 20:34:29 +0000197 switch (CC) {
198 default:
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000199 return StringRef();
Reid Klecknerde3d8b52016-06-08 20:34:29 +0000200#define HANDLE_DW_CC(ID, NAME) \
201 case DW_CC_##NAME: \
202 return "DW_CC_" #NAME;
203#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +0000204 }
Reid Klecknerde3d8b52016-06-08 20:34:29 +0000205}
206
207unsigned llvm::dwarf::getCallingConvention(StringRef CCString) {
208 return StringSwitch<unsigned>(CCString)
209#define HANDLE_DW_CC(ID, NAME) .Case("DW_CC_" #NAME, DW_CC_##NAME)
210#include "llvm/Support/Dwarf.def"
211 .Default(0);
Jim Laskey22e47b92006-02-27 12:43:29 +0000212}
213
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000214StringRef llvm::dwarf::InlineCodeString(unsigned Code) {
Chris Lattner0709a272009-12-29 21:09:57 +0000215 switch (Code) {
Jason Molendadd6a4ca2010-06-17 01:23:24 +0000216 case DW_INL_not_inlined: return "DW_INL_not_inlined";
217 case DW_INL_inlined: return "DW_INL_inlined";
218 case DW_INL_declared_not_inlined: return "DW_INL_declared_not_inlined";
219 case DW_INL_declared_inlined: return "DW_INL_declared_inlined";
Jim Laskey22e47b92006-02-27 12:43:29 +0000220 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000221 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +0000222}
223
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000224StringRef llvm::dwarf::ArrayOrderString(unsigned Order) {
Chris Lattner0709a272009-12-29 21:09:57 +0000225 switch (Order) {
Jason Molendadd6a4ca2010-06-17 01:23:24 +0000226 case DW_ORD_row_major: return "DW_ORD_row_major";
227 case DW_ORD_col_major: return "DW_ORD_col_major";
Jim Laskey22e47b92006-02-27 12:43:29 +0000228 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000229 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +0000230}
231
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000232StringRef llvm::dwarf::DiscriminantString(unsigned Discriminant) {
Chris Lattner0709a272009-12-29 21:09:57 +0000233 switch (Discriminant) {
Jason Molendadd6a4ca2010-06-17 01:23:24 +0000234 case DW_DSC_label: return "DW_DSC_label";
235 case DW_DSC_range: return "DW_DSC_range";
Jim Laskey22e47b92006-02-27 12:43:29 +0000236 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000237 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +0000238}
239
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000240StringRef llvm::dwarf::LNStandardString(unsigned Standard) {
Chris Lattner0709a272009-12-29 21:09:57 +0000241 switch (Standard) {
Adrian Prantl79deba62016-10-28 22:56:59 +0000242 default:
243 return StringRef();
244#define HANDLE_DW_LNS(ID, NAME) \
245 case DW_LNS_##NAME: \
246 return "DW_LNS_" #NAME;
247#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +0000248 }
Jim Laskey22e47b92006-02-27 12:43:29 +0000249}
250
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000251StringRef llvm::dwarf::LNExtendedString(unsigned Encoding) {
Chris Lattner0709a272009-12-29 21:09:57 +0000252 switch (Encoding) {
Adrian Prantl3cd37d02016-10-28 22:57:02 +0000253 default:
254 return StringRef();
255#define HANDLE_DW_LNE(ID, NAME) \
256 case DW_LNE_##NAME: \
257 return "DW_LNE_" #NAME;
258#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +0000259 }
Jim Laskey22e47b92006-02-27 12:43:29 +0000260}
261
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000262StringRef llvm::dwarf::MacinfoString(unsigned Encoding) {
Chris Lattner0709a272009-12-29 21:09:57 +0000263 switch (Encoding) {
264 // Macinfo Type Encodings
Jason Molendadd6a4ca2010-06-17 01:23:24 +0000265 case DW_MACINFO_define: return "DW_MACINFO_define";
266 case DW_MACINFO_undef: return "DW_MACINFO_undef";
267 case DW_MACINFO_start_file: return "DW_MACINFO_start_file";
268 case DW_MACINFO_end_file: return "DW_MACINFO_end_file";
269 case DW_MACINFO_vendor_ext: return "DW_MACINFO_vendor_ext";
Amjad Aboude59cc3e2015-11-12 09:38:54 +0000270 case DW_MACINFO_invalid: return "DW_MACINFO_invalid";
Jim Laskey22e47b92006-02-27 12:43:29 +0000271 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000272 return StringRef();
Jim Laskey22e47b92006-02-27 12:43:29 +0000273}
274
Amjad Abouda9bcf162015-12-10 12:56:35 +0000275unsigned llvm::dwarf::getMacinfo(StringRef MacinfoString) {
276 return StringSwitch<unsigned>(MacinfoString)
277 .Case("DW_MACINFO_define", DW_MACINFO_define)
278 .Case("DW_MACINFO_undef", DW_MACINFO_undef)
279 .Case("DW_MACINFO_start_file", DW_MACINFO_start_file)
280 .Case("DW_MACINFO_end_file", DW_MACINFO_end_file)
281 .Case("DW_MACINFO_vendor_ext", DW_MACINFO_vendor_ext)
282 .Default(DW_MACINFO_invalid);
283}
284
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000285StringRef llvm::dwarf::CallFrameString(unsigned Encoding) {
Chris Lattner0709a272009-12-29 21:09:57 +0000286 switch (Encoding) {
Adrian Prantl44a44612016-10-28 22:56:53 +0000287 default:
288 return StringRef();
289#define HANDLE_DW_CFA(ID, NAME) \
290 case DW_CFA_##NAME: \
291 return "DW_CFA_" #NAME;
292#include "llvm/Support/Dwarf.def"
Jim Laskey22e47b92006-02-27 12:43:29 +0000293 }
Jim Laskey22e47b92006-02-27 12:43:29 +0000294}
Eric Christophercf7289f2013-09-05 18:20:16 +0000295
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000296StringRef llvm::dwarf::ApplePropertyString(unsigned Prop) {
Frederic Rissb5e53ee2014-10-09 20:43:04 +0000297 switch (Prop) {
Adrian Prantl8580d3f2016-10-28 22:56:56 +0000298 default:
299 return StringRef();
300#define HANDLE_DW_APPLE_PROPERTY(ID, NAME) \
301 case DW_APPLE_PROPERTY_##NAME: \
302 return "DW_APPLE_PROPERTY_" #NAME;
303#include "llvm/Support/Dwarf.def"
Frederic Rissb5e53ee2014-10-09 20:43:04 +0000304 }
Frederic Rissb5e53ee2014-10-09 20:43:04 +0000305}
306
Paul Robinsoncddd6042017-02-28 20:24:55 +0000307StringRef llvm::dwarf::UnitTypeString(unsigned UT) {
308 switch (UT) {
309 default:
310 return StringRef();
311#define HANDLE_DW_UT(ID, NAME) \
312 case DW_UT_##NAME: \
313 return "DW_UT_" #NAME;
314#include "llvm/Support/Dwarf.def"
315 }
316}
317
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000318StringRef llvm::dwarf::AtomTypeString(unsigned AT) {
Eric Christophercf7289f2013-09-05 18:20:16 +0000319 switch (AT) {
320 case dwarf::DW_ATOM_null:
321 return "DW_ATOM_null";
322 case dwarf::DW_ATOM_die_offset:
323 return "DW_ATOM_die_offset";
324 case DW_ATOM_cu_offset:
325 return "DW_ATOM_cu_offset";
326 case DW_ATOM_die_tag:
327 return "DW_ATOM_die_tag";
328 case DW_ATOM_type_flags:
329 return "DW_ATOM_type_flags";
330 }
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000331 return StringRef();
Eric Christophercf7289f2013-09-05 18:20:16 +0000332}
David Blaikied0a869d2013-09-19 22:19:37 +0000333
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000334StringRef llvm::dwarf::GDBIndexEntryKindString(GDBIndexEntryKind Kind) {
David Blaikied0a869d2013-09-19 22:19:37 +0000335 switch (Kind) {
336 case GIEK_NONE:
337 return "NONE";
338 case GIEK_TYPE:
339 return "TYPE";
340 case GIEK_VARIABLE:
341 return "VARIABLE";
342 case GIEK_FUNCTION:
343 return "FUNCTION";
344 case GIEK_OTHER:
345 return "OTHER";
346 case GIEK_UNUSED5:
347 return "UNUSED5";
348 case GIEK_UNUSED6:
349 return "UNUSED6";
350 case GIEK_UNUSED7:
351 return "UNUSED7";
352 }
353 llvm_unreachable("Unknown GDBIndexEntryKind value");
354}
355
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000356StringRef
357llvm::dwarf::GDBIndexEntryLinkageString(GDBIndexEntryLinkage Linkage) {
David Blaikied0a869d2013-09-19 22:19:37 +0000358 switch (Linkage) {
359 case GIEL_EXTERNAL:
360 return "EXTERNAL";
361 case GIEL_STATIC:
362 return "STATIC";
363 }
364 llvm_unreachable("Unknown GDBIndexEntryLinkage value");
365}
Frederic Riss878065b2014-09-04 19:39:20 +0000366
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000367StringRef llvm::dwarf::AttributeValueString(uint16_t Attr, unsigned Val) {
Frederic Riss878065b2014-09-04 19:39:20 +0000368 switch (Attr) {
369 case DW_AT_accessibility:
370 return AccessibilityString(Val);
371 case DW_AT_virtuality:
372 return VirtualityString(Val);
373 case DW_AT_language:
374 return LanguageString(Val);
375 case DW_AT_encoding:
376 return AttributeEncodingString(Val);
377 case DW_AT_decimal_sign:
378 return DecimalSignString(Val);
379 case DW_AT_endianity:
380 return EndianityString(Val);
381 case DW_AT_visibility:
382 return VisibilityString(Val);
383 case DW_AT_identifier_case:
384 return CaseString(Val);
385 case DW_AT_calling_convention:
386 return ConventionString(Val);
387 case DW_AT_inline:
388 return InlineCodeString(Val);
389 case DW_AT_ordering:
390 return ArrayOrderString(Val);
391 case DW_AT_discr_value:
392 return DiscriminantString(Val);
393 }
394
Mehdi Amini149f6ea2016-10-05 05:59:29 +0000395 return StringRef();
Frederic Riss878065b2014-09-04 19:39:20 +0000396}