Skip to content

Commit f6bcfd4

Browse files
committed
[lldb][Language] Add more language types
Adds more languages to the `language_names` list in preparation for adding support for C++20 expression evaluation. The language constants were taken from the DWARFv5 constants defined in LLVM's `Dwarf.def`. Two vendor constants overlap with the DWARFv5 constants so bump their values. Their actual value is not important, whereas keeping the enum values consecutive is (since they are used for array lookups). Differential Revision: https://reviews.llvm.org/D143061 (cherry picked from commit 0301a49)
1 parent 417f36c commit f6bcfd4

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

lldb/include/lldb/lldb-enumerations.h

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -476,13 +476,25 @@ enum LanguageType {
476476
eLanguageTypeC_plus_plus_14 = 0x0021, ///< ISO C++:2014.
477477
eLanguageTypeFortran03 = 0x0022, ///< ISO Fortran 2003.
478478
eLanguageTypeFortran08 = 0x0023, ///< ISO Fortran 2008.
479+
eLanguageTypeRenderScript = 0x0024,
480+
eLanguageTypeBLISS = 0x0025,
481+
eLanguageTypeKotlin = 0x0026,
482+
eLanguageTypeZig = 0x0027,
483+
eLanguageTypeCrystal = 0x0028,
484+
eLanguageTypeC_plus_plus_17 = 0x002a, ///< ISO C++:2017.
485+
eLanguageTypeC_plus_plus_20 = 0x002b, ///< ISO C++:2020.
486+
eLanguageTypeC17 = 0x002c,
487+
eLanguageTypeFortran18 = 0x002d,
488+
eLanguageTypeAda2005 = 0x002e,
489+
eLanguageTypeAda2012 = 0x002f,
490+
479491
// Vendor Extensions
480492
// Note: Language::GetNameForLanguageType
481493
// assumes these can be used as indexes into array language_names, and
482494
// Language::SetLanguageFromCString and Language::AsCString assume these can
483495
// be used as indexes into array g_languages.
484-
eLanguageTypeMipsAssembler = 0x0024, ///< Mips_Assembler.
485-
eLanguageTypeExtRenderScript = 0x0025, ///< RenderScript.
496+
eLanguageTypeMipsAssembler, ///< Mips_Assembler.
497+
eLanguageTypeExtRenderScript, ///< GOOGLE_RenderScript.
486498
eNumLanguageTypes
487499
};
488500

lldb/source/Target/Language.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,21 @@ struct language_name_pair language_names[] = {
194194
{"c++14", eLanguageTypeC_plus_plus_14},
195195
{"fortran03", eLanguageTypeFortran03},
196196
{"fortran08", eLanguageTypeFortran08},
197+
{"renderscript", eLanguageTypeRenderScript},
198+
{"bliss", eLanguageTypeBLISS},
199+
{"kotlin", eLanguageTypeKotlin},
200+
{"zig", eLanguageTypeZig},
201+
{"crystal", eLanguageTypeCrystal},
202+
{"<invalid language>",
203+
static_cast<LanguageType>(
204+
0x0029)}, // Not yet taken by any language in the DWARF spec
205+
// and thus has no entry in LanguageType
206+
{"c++17", eLanguageTypeC_plus_plus_17},
207+
{"c++20", eLanguageTypeC_plus_plus_20},
208+
{"c17", eLanguageTypeC17},
209+
{"fortran18", eLanguageTypeFortran18},
210+
{"ada2005", eLanguageTypeAda2005},
211+
{"ada2012", eLanguageTypeAda2012},
197212
// Vendor Extensions
198213
{"assembler", eLanguageTypeMipsAssembler},
199214
{"renderscript", eLanguageTypeExtRenderScript},

0 commit comments

Comments
 (0)