[Lldb-commits] [lldb] r338638 - [DWARFASTParser] Remove special cases for `llvm-gcc`

Davide Italiano via lldb-commits lldb-commits at lists.llvm.org
Wed Aug 1 14:13:45 PDT 2018


Author: davide
Date: Wed Aug  1 14:13:45 2018
New Revision: 338638

URL: http://llvm.org/viewvc/llvm-project?rev=338638&view=rev
Log:
[DWARFASTParser] Remove special cases for `llvm-gcc`

Reviewed by: aprantl, labath.

Differential Revision:  https://reviews.llvm.org/D48500

Modified:
    lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp

Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp?rev=338638&r1=338637&r2=338638&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp (original)
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp Wed Aug  1 14:13:45 2018
@@ -307,14 +307,7 @@ TypeSP DWARFASTParserClang::ParseTypeFro
                 decl.SetColumn(form_value.Unsigned());
                 break;
               case DW_AT_name:
-
                 type_name_cstr = form_value.AsCString();
-                // Work around a bug in llvm-gcc where they give a name to a
-                // reference type which doesn't include the "&"...
-                if (tag == DW_TAG_reference_type) {
-                  if (strchr(type_name_cstr, '&') == NULL)
-                    type_name_cstr = NULL;
-                }
                 if (type_name_cstr)
                   type_name_const_str.SetCString(type_name_cstr);
                 break;
@@ -558,16 +551,9 @@ TypeSP DWARFASTParserClang::ParseTypeFro
             if (attributes.ExtractFormValueAtIndex(i, form_value)) {
               switch (attr) {
               case DW_AT_decl_file:
-                if (die.GetCU()->DW_AT_decl_file_attributes_are_invalid()) {
-                  // llvm-gcc outputs invalid DW_AT_decl_file attributes that
-                  // always point to the compile unit file, so we clear this
-                  // invalid value so that we can still unique types
-                  // efficiently.
-                  decl.SetFile(FileSpec("<invalid>", false));
-                } else
-                  decl.SetFile(
-                      sc.comp_unit->GetSupportFiles().GetFileSpecAtIndex(
-                          form_value.Unsigned()));
+                decl.SetFile(
+                   sc.comp_unit->GetSupportFiles().GetFileSpecAtIndex(
+                      form_value.Unsigned()));
                 break;
 
               case DW_AT_decl_line:
@@ -2977,15 +2963,6 @@ bool DWARFASTParserClang::ParseChildMemb
             class_language == eLanguageTypeObjC_plus_plus)
           accessibility = eAccessNone;
 
-        if (member_idx == 0 && !is_artificial && name &&
-            (strstr(name, "_vptr$") == name)) {
-          // Not all compilers will mark the vtable pointer member as
-          // artificial (llvm-gcc). We can't have the virtual members in our
-          // classes otherwise it throws off all child offsets since we end up
-          // having and extra pointer sized member in our class layouts.
-          is_artificial = true;
-        }
-
         // Handle static members
         if (is_external && member_byte_offset == UINT32_MAX) {
           Type *var_type = die.ResolveTypeUID(DIERef(encoding_form));




More information about the lldb-commits mailing list