Conditionalize the use of DW_LANG_C_plus_plus_03 and DW_LANG_Rust
authorMark Wielaard <mark@klomp.org>
Thu, 17 Jan 2019 10:19:02 +0000 (11:19 +0100)
committerDodji Seketeli <dodji@redhat.com>
Thu, 17 Jan 2019 13:26:58 +0000 (14:26 +0100)
Older elfutils (pre-0.170) don't define these constants in dwarf.h so
don't use them in that case.

* include/abg-ir.h (LANG_C_plus_plus_03): Add this new language
enum to "enum translation_unit::language".
* src/abg-dwarf-reader.cc (dwarf_language_to_tu_language): Do not
use DW_LANG_Rust or DW_LANG_C_plus_plus_03 if these are not
defined.
(get_default_array_lower_bound): Handle the new
translation_unit::LANG_C_plus_plus_03 enumerator.

Signed-off-by: Mark Wielaard <mark@klomp.org>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
include/abg-ir.h
src/abg-dwarf-reader.cc

index 49910e8ffbeee939a00474b88ecdab51af6faf1f..c0b5e7b01fa5623588e0324e8faeada209475db5 100644 (file)
@@ -537,6 +537,7 @@ public:
     LANG_C99,
     LANG_C11,
     LANG_C,
+    LANG_C_plus_plus_03,
     LANG_C_plus_plus_11,
     LANG_C_plus_plus_14,
     LANG_C_plus_plus,
index c9cffc3f4c0b45c82910ef718005aa229ba5c7b3..aa9d147238add43cba994bafb48ccba35a109858 100644 (file)
@@ -12199,9 +12199,6 @@ dwarf_language_to_tu_language(size_t l)
     case DW_LANG_Ada83:
       return translation_unit::LANG_Ada83;
     case DW_LANG_C_plus_plus:
-    case DW_LANG_C_plus_plus_03:
-    case DW_LANG_C_plus_plus_11:
-    case DW_LANG_C_plus_plus_14:
       return translation_unit::LANG_C_plus_plus;
     case DW_LANG_Cobol74:
       return translation_unit::LANG_Cobol74;
@@ -12229,7 +12226,9 @@ dwarf_language_to_tu_language(size_t l)
       return translation_unit::LANG_ObjC;
     case DW_LANG_ObjC_plus_plus:
       return translation_unit::LANG_ObjC_plus_plus;
+#ifdef DW_LANG_Rust
     case DW_LANG_Rust:
+#endif
       return translation_unit::LANG_Rust;
 #ifdef DW_LANG_UPC
     case DW_LANG_UPC:
@@ -12251,6 +12250,11 @@ dwarf_language_to_tu_language(size_t l)
       return translation_unit::LANG_Go;
 #endif
 
+#ifdef DW_LANG_C_plus_plus_03
+    case DW_LANG_C_plus_plus_03:
+      return translation_unit::LANG_C_plus_plus_03;
+#endif
+
 #ifdef DW_LANG_C_plus_plus_11
     case DW_LANG_C_plus_plus_11:
       return translation_unit::LANG_C_plus_plus_11;
@@ -12300,6 +12304,7 @@ get_default_array_lower_bound(translation_unit::language l)
     case translation_unit::LANG_C99:
     case translation_unit::LANG_C11:
     case translation_unit::LANG_C:
+    case translation_unit::LANG_C_plus_plus_03:
     case translation_unit::LANG_C_plus_plus_11:
     case translation_unit::LANG_C_plus_plus_14:
     case translation_unit::LANG_C_plus_plus: