@@ -378,3 +378,54 @@ char *dwarview_inline_name(unsigned int code)
378
378
}
379
379
380
380
#undef DWARF_INLINE
381
+
382
+ /* DWARF language encodings. */
383
+ struct lang_name {
384
+ unsigned code ;
385
+ char * name ;
386
+ };
387
+
388
+ #define DWARF_LANGUAGE (_lang ) { DW_LANG_##_lang, #_lang }
389
+ #define DWARF_LANG_Cpp (pre_ , _year , name ) { DW_LANG_##pre_##C_plus_plus##_year, name }
390
+
391
+ static const struct lang_name language_names [] = {
392
+ DWARF_LANGUAGE (C89 ),
393
+ DWARF_LANGUAGE (C ),
394
+ DWARF_LANGUAGE (Ada83 ),
395
+ DWARF_LANG_Cpp ( , , "C++" ),
396
+ DWARF_LANGUAGE (Cobol74 ),
397
+ DWARF_LANGUAGE (Cobol85 ),
398
+ DWARF_LANGUAGE (Fortran77 ),
399
+ DWARF_LANGUAGE (Fortran90 ),
400
+ DWARF_LANGUAGE (Pascal83 ),
401
+ DWARF_LANGUAGE (Modula2 ),
402
+ DWARF_LANGUAGE (Java ),
403
+ DWARF_LANGUAGE (C99 ),
404
+ DWARF_LANGUAGE (Ada95 ),
405
+ DWARF_LANGUAGE (Fortran95 ),
406
+ DWARF_LANGUAGE (PLI ),
407
+ DWARF_LANGUAGE (ObjC ),
408
+ DWARF_LANG_Cpp (Obj , , "ObjC++" ),
409
+ DWARF_LANGUAGE (UPC ),
410
+ DWARF_LANGUAGE (D ),
411
+ DWARF_LANGUAGE (Python ),
412
+ DWARF_LANGUAGE (Go ),
413
+ DWARF_LANGUAGE (Haskell ),
414
+ DWARF_LANG_Cpp ( , _11 , "C++11" ),
415
+ DWARF_LANGUAGE (C11 ),
416
+ DWARF_LANG_Cpp ( , _14 , "C++14" ),
417
+ };
418
+
419
+ char * dwarview_language_name (unsigned int code )
420
+ {
421
+ unsigned i ;
422
+
423
+ for (i = 0 ; i < ARRAY_SIZE (language_names ); i ++ )
424
+ if (language_names [i ].code == code )
425
+ return language_names [i ].name ;
426
+
427
+ return "unknown" ;
428
+ }
429
+
430
+ #undef DWARF_LANGUAGE
431
+ #undef DWARF_LANG_Cpp
0 commit comments