Fixed an issue in the DWARF parser that was causing forward declarations
to not get resolved.
Fixed the "void **isa_ptr" variable inside the objective C verifier to start
with a '$' character so we don't go looking for it in our program.
Moved the lookup for "$__lldb_class" into the part that knows we are looking
for internal types that start with a '$'.
llvm-svn: 118488
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index 6492ae5..4fd7681 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -2857,27 +2857,27 @@
}
-// if (is_forward_declaration)
-// {
-// // We have a forward declaration to a type and we need
-// // to try and find a full declaration. We look in the
-// // current type index just in case we have a forward
-// // declaration followed by an actual declarations in the
-// // DWARF. If this fails, we need to look elsewhere...
-//
-// type_sp = FindDefinitionTypeForDIE (dwarf_cu, die, type_name_const_str);
-//
-// if (!type_sp)
-// {
-// // We weren't able to find a full declaration in
-// // this DWARF, see if we have a declaration anywhere
-// // else...
-// if (m_debug_map_symfile)
-// type_sp = m_debug_map_symfile->FindDefinitionTypeForDIE (dwarf_cu, die, type_name_const_str);
-// }
-// if (type_sp)
-// return type_sp;
-// }
+ if (is_forward_declaration)
+ {
+ // We have a forward declaration to a type and we need
+ // to try and find a full declaration. We look in the
+ // current type index just in case we have a forward
+ // declaration followed by an actual declarations in the
+ // DWARF. If this fails, we need to look elsewhere...
+
+ type_sp = FindDefinitionTypeForDIE (dwarf_cu, die, type_name_const_str);
+
+ if (!type_sp)
+ {
+ // We weren't able to find a full declaration in
+ // this DWARF, see if we have a declaration anywhere
+ // else...
+ if (m_debug_map_symfile)
+ type_sp = m_debug_map_symfile->FindDefinitionTypeForDIE (dwarf_cu, die, type_name_const_str);
+ }
+ if (type_sp)
+ return type_sp;
+ }
assert (tag_decl_kind != -1);
bool clang_type_was_created = false;
clang_type = m_forward_decl_die_to_clang_type.lookup (die);