@@ -472,8 +472,7 @@ SymbolFileDWARF::SymbolFileDWARF(ObjectFileSP objfile_sp,
472
472
: SymbolFileCommon(std::move(objfile_sp)), m_debug_map_module_wp(),
473
473
m_debug_map_symfile(nullptr ),
474
474
m_context(m_objfile_sp->GetModule ()->GetSectionList(), dwo_section_list),
475
- m_fetched_external_modules(false ),
476
- m_supports_DW_AT_APPLE_objc_complete_type(eLazyBoolCalculate) {}
475
+ m_fetched_external_modules(false ) {}
477
476
478
477
SymbolFileDWARF::~SymbolFileDWARF () = default ;
479
478
@@ -2920,37 +2919,6 @@ Symbol *SymbolFileDWARF::GetObjCClassSymbol(ConstString objc_class_name) {
2920
2919
return objc_class_symbol;
2921
2920
}
2922
2921
2923
- // Some compilers don't emit the DW_AT_APPLE_objc_complete_type attribute. If
2924
- // they don't then we can end up looking through all class types for a complete
2925
- // type and never find the full definition. We need to know if this attribute
2926
- // is supported, so we determine this here and cache th result. We also need to
2927
- // worry about the debug map
2928
- // DWARF file
2929
- // if we are doing darwin DWARF in .o file debugging.
2930
- bool SymbolFileDWARF::Supports_DW_AT_APPLE_objc_complete_type (DWARFUnit *cu) {
2931
- if (m_supports_DW_AT_APPLE_objc_complete_type == eLazyBoolCalculate) {
2932
- m_supports_DW_AT_APPLE_objc_complete_type = eLazyBoolNo;
2933
- if (cu && cu->Supports_DW_AT_APPLE_objc_complete_type ())
2934
- m_supports_DW_AT_APPLE_objc_complete_type = eLazyBoolYes;
2935
- else {
2936
- DWARFDebugInfo &debug_info = DebugInfo ();
2937
- const uint32_t num_compile_units = GetNumCompileUnits ();
2938
- for (uint32_t cu_idx = 0 ; cu_idx < num_compile_units; ++cu_idx) {
2939
- DWARFUnit *dwarf_cu = debug_info.GetUnitAtIndex (cu_idx);
2940
- if (dwarf_cu != cu &&
2941
- dwarf_cu->Supports_DW_AT_APPLE_objc_complete_type ()) {
2942
- m_supports_DW_AT_APPLE_objc_complete_type = eLazyBoolYes;
2943
- break ;
2944
- }
2945
- }
2946
- }
2947
- if (m_supports_DW_AT_APPLE_objc_complete_type == eLazyBoolNo &&
2948
- GetDebugMapSymfile ())
2949
- return m_debug_map_symfile->Supports_DW_AT_APPLE_objc_complete_type (this );
2950
- }
2951
- return m_supports_DW_AT_APPLE_objc_complete_type == eLazyBoolYes;
2952
- }
2953
-
2954
2922
// This function can be used when a DIE is found that is a forward declaration
2955
2923
// DIE and we want to try and find a type that has the complete definition.
2956
2924
TypeSP SymbolFileDWARF::FindCompleteObjCDefinitionTypeForDIE (
@@ -2968,8 +2936,7 @@ TypeSP SymbolFileDWARF::FindCompleteObjCDefinitionTypeForDIE(
2968
2936
if (type_die == die || !IsStructOrClassTag (type_die.Tag ()))
2969
2937
return true ;
2970
2938
2971
- if (must_be_implementation &&
2972
- type_die.Supports_DW_AT_APPLE_objc_complete_type ()) {
2939
+ if (must_be_implementation) {
2973
2940
const bool try_resolving_type = type_die.GetAttributeValueAsUnsigned (
2974
2941
DW_AT_APPLE_objc_complete_type, 0 );
2975
2942
if (!try_resolving_type)
0 commit comments