Add more DWARF 5 language constants.

Differential Revision: http://reviews.llvm.org/D7430

llvm-svn: 228487
This commit is contained in:
Bruce Mitchener 2015-02-07 06:35:30 +00:00
parent 75452e8c5c
commit 7e575ed1ea
3 changed files with 33 additions and 1 deletions

View File

@ -144,6 +144,14 @@ 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(0x001c, Rust)
HANDLE_DW_LANG(0x001d, C11)
HANDLE_DW_LANG(0x001e, Swift)
HANDLE_DW_LANG(0x001f, Julia)
HANDLE_DW_LANG(0x0020, Dylan)
HANDLE_DW_LANG(0x0021, C_plus_plus_14)
HANDLE_DW_LANG(0x0022, Fortran03)
HANDLE_DW_LANG(0x0023, Fortran08)
HANDLE_DW_LANG(0x8001, Mips_Assembler)
// DWARF attribute type encodings.

View File

@ -130,6 +130,30 @@ int64_t DwarfUnit::getDefaultLowerBound() const {
if (dwarf::DWARF_VERSION >= 4)
return 1;
break;
// The languages below have valid values only if the DWARF version >= 5.
case dwarf::DW_LANG_OpenCL:
case dwarf::DW_LANG_Go:
case dwarf::DW_LANG_Haskell:
case dwarf::DW_LANG_C_plus_plus_03:
case dwarf::DW_LANG_C_plus_plus_11:
case dwarf::DW_LANG_OCaml:
case dwarf::DW_LANG_Rust:
case dwarf::DW_LANG_C11:
case dwarf::DW_LANG_Swift:
case dwarf::DW_LANG_Dylan:
case dwarf::DW_LANG_C_plus_plus_14:
if (dwarf::DWARF_VERSION >= 5)
return 0;
break;
case dwarf::DW_LANG_Modula3:
case dwarf::DW_LANG_Julia:
case dwarf::DW_LANG_Fortran03:
case dwarf::DW_LANG_Fortran08:
if (dwarf::DWARF_VERSION >= 5)
return 1;
break;
}
return -1;

View File

@ -145,7 +145,7 @@ DICompileUnit DIBuilder::createCompileUnit(unsigned Lang, StringRef Filename,
DebugEmissionKind Kind,
bool EmitDebugInfo) {
assert(((Lang <= dwarf::DW_LANG_OCaml && Lang >= dwarf::DW_LANG_C89) ||
assert(((Lang <= dwarf::DW_LANG_Fortran08 && Lang >= dwarf::DW_LANG_C89) ||
(Lang <= dwarf::DW_LANG_hi_user && Lang >= dwarf::DW_LANG_lo_user)) &&
"Invalid Language tag");
assert(!Filename.empty() &&