1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 13:11:39 +01:00

Support: Rewrite dwarf::LanguageString(), NFC

llvm-svn: 228457
This commit is contained in:
Duncan P. N. Exon Smith 2015-02-06 22:53:19 +00:00
parent 77ed02eb3f
commit b69d0ef5cb
3 changed files with 50 additions and 61 deletions

View File

@ -12,10 +12,18 @@
//===----------------------------------------------------------------------===//
// TODO: Add other DW-based macros.
#if !defined HANDLE_DW_TAG
#if !(defined HANDLE_DW_TAG || defined HANDLE_DW_LANG)
#error "Missing macro definition of HANDLE_DW*"
#endif
#ifndef HANDLE_DW_TAG
#define HANDLE_DW_TAG(ID, NAME)
#endif
#ifndef HANDLE_DW_LANG
#define HANDLE_DW_LANG(ID, NAME)
#endif
HANDLE_DW_TAG(0x0001, array_type)
HANDLE_DW_TAG(0x0002, class_type)
HANDLE_DW_TAG(0x0003, entry_point)
@ -97,4 +105,37 @@ HANDLE_DW_TAG(0x4107, GNU_template_parameter_pack)
HANDLE_DW_TAG(0x4108, GNU_formal_parameter_pack)
HANDLE_DW_TAG(0x4200, APPLE_property)
// DWARF languages.
HANDLE_DW_LANG(0x0001, C89)
HANDLE_DW_LANG(0x0002, C)
HANDLE_DW_LANG(0x0003, Ada83)
HANDLE_DW_LANG(0x0004, C_plus_plus)
HANDLE_DW_LANG(0x0005, Cobol74)
HANDLE_DW_LANG(0x0006, Cobol85)
HANDLE_DW_LANG(0x0007, Fortran77)
HANDLE_DW_LANG(0x0008, Fortran90)
HANDLE_DW_LANG(0x0009, Pascal83)
HANDLE_DW_LANG(0x000a, Modula2)
HANDLE_DW_LANG(0x000b, Java)
HANDLE_DW_LANG(0x000c, C99)
HANDLE_DW_LANG(0x000d, Ada95)
HANDLE_DW_LANG(0x000e, Fortran95)
HANDLE_DW_LANG(0x000f, PLI)
HANDLE_DW_LANG(0x0010, ObjC)
HANDLE_DW_LANG(0x0011, ObjC_plus_plus)
HANDLE_DW_LANG(0x0012, UPC)
HANDLE_DW_LANG(0x0013, D)
// New in DWARF 5:
HANDLE_DW_LANG(0x0014, Python)
HANDLE_DW_LANG(0x0015, OpenCL)
HANDLE_DW_LANG(0x0016, Go)
HANDLE_DW_LANG(0x0017, Modula3)
HANDLE_DW_LANG(0x0018, Haskell)
HANDLE_DW_LANG(0x0019, C_plus_plus_03)
HANDLE_DW_LANG(0x001a, C_plus_plus_11)
HANDLE_DW_LANG(0x001b, OCaml)
HANDLE_DW_LANG(0x8001, Mips_Assembler)
#undef HANDLE_DW_TAG
#undef HANDLE_DW_LANG

View File

@ -516,38 +516,9 @@ enum VirtualityAttribute {
};
enum SourceLanguage {
// Language names
DW_LANG_C89 = 0x0001,
DW_LANG_C = 0x0002,
DW_LANG_Ada83 = 0x0003,
DW_LANG_C_plus_plus = 0x0004,
DW_LANG_Cobol74 = 0x0005,
DW_LANG_Cobol85 = 0x0006,
DW_LANG_Fortran77 = 0x0007,
DW_LANG_Fortran90 = 0x0008,
DW_LANG_Pascal83 = 0x0009,
DW_LANG_Modula2 = 0x000a,
DW_LANG_Java = 0x000b,
DW_LANG_C99 = 0x000c,
DW_LANG_Ada95 = 0x000d,
DW_LANG_Fortran95 = 0x000e,
DW_LANG_PLI = 0x000f,
DW_LANG_ObjC = 0x0010,
DW_LANG_ObjC_plus_plus = 0x0011,
DW_LANG_UPC = 0x0012,
DW_LANG_D = 0x0013,
// New in DWARF 5:
DW_LANG_Python = 0x0014,
DW_LANG_OpenCL = 0x0015,
DW_LANG_Go = 0x0016,
DW_LANG_Modula3 = 0x0017,
DW_LANG_Haskell = 0x0018,
DW_LANG_C_plus_plus_03 = 0x0019,
DW_LANG_C_plus_plus_11 = 0x001a,
DW_LANG_OCaml = 0x001b,
#define HANDLE_DW_LANG(ID, NAME) DW_LANG_##NAME = ID,
#include "llvm/Support/Dwarf.def"
DW_LANG_lo_user = 0x8000,
DW_LANG_Mips_Assembler = 0x8001,
DW_LANG_hi_user = 0xffff
};

View File

@ -480,36 +480,13 @@ const char *llvm::dwarf::VirtualityString(unsigned Virtuality) {
const char *llvm::dwarf::LanguageString(unsigned Language) {
switch (Language) {
case DW_LANG_C89: return "DW_LANG_C89";
case DW_LANG_C: return "DW_LANG_C";
case DW_LANG_Ada83: return "DW_LANG_Ada83";
case DW_LANG_C_plus_plus: return "DW_LANG_C_plus_plus";
case DW_LANG_Cobol74: return "DW_LANG_Cobol74";
case DW_LANG_Cobol85: return "DW_LANG_Cobol85";
case DW_LANG_Fortran77: return "DW_LANG_Fortran77";
case DW_LANG_Fortran90: return "DW_LANG_Fortran90";
case DW_LANG_Pascal83: return "DW_LANG_Pascal83";
case DW_LANG_Modula2: return "DW_LANG_Modula2";
case DW_LANG_Java: return "DW_LANG_Java";
case DW_LANG_C99: return "DW_LANG_C99";
case DW_LANG_Ada95: return "DW_LANG_Ada95";
case DW_LANG_Fortran95: return "DW_LANG_Fortran95";
case DW_LANG_PLI: return "DW_LANG_PLI";
case DW_LANG_ObjC: return "DW_LANG_ObjC";
case DW_LANG_ObjC_plus_plus: return "DW_LANG_ObjC_plus_plus";
case DW_LANG_UPC: return "DW_LANG_UPC";
case DW_LANG_D: return "DW_LANG_D";
case DW_LANG_Python: return "DW_LANG_Python";
case DW_LANG_OpenCL: return "DW_LANG_OpenCL";
case DW_LANG_Go: return "DW_LANG_Go";
case DW_LANG_Modula3: return "DW_LANG_Modula3";
case DW_LANG_Haskell: return "DW_LANG_Haskell";
case DW_LANG_C_plus_plus_03: return "DW_LANG_C_plus_plus_03";
case DW_LANG_C_plus_plus_11: return "DW_LANG_C_plus_plus_11";
case DW_LANG_OCaml: return "DW_LANG_OCaml";
case DW_LANG_Mips_Assembler: return "DW_LANG_Mips_Assembler";
default:
return nullptr;
#define HANDLE_DW_LANG(ID, NAME) \
case DW_LANG_##NAME: \
return "DW_LANG_" #NAME;
#include "llvm/Support/Dwarf.def"
}
return nullptr;
}
const char *llvm::dwarf::CaseString(unsigned Case) {