[Lldb-commits] [lldb] r181560 - Don't completely drop methods we don't want to put

Sean Callanan scallanan at apple.com
Thu May 9 16:13:13 PDT 2013


Author: spyffe
Date: Thu May  9 18:13:13 2013
New Revision: 181560

URL: http://llvm.org/viewvc/llvm-project?rev=181560&view=rev
Log:
Don't completely drop methods we don't want to put
into a CXXRecordDecl on the ground; rather, put
them into the translation unit as functions.

<rdar://problem/13834404>

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

Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp?rev=181560&r1=181559&r2=181560&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp (original)
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Thu May  9 18:13:13 2013
@@ -6302,6 +6302,8 @@ SymbolFileDWARF::ParseType (const Symbol
                                                          is_variadic, 
                                                          type_quals);
                     
+                    bool ignore_containing_context = false;
+                    
                     if (type_name_cstr)
                     {
                         bool type_handled = false;
@@ -6520,7 +6522,7 @@ SymbolFileDWARF::ParseType (const Symbol
                                                     }
                                                     else
                                                     {
-                                                        return TypeSP();
+                                                        ignore_containing_context = true;
                                                     }
                                                 }
                                             }
@@ -6562,7 +6564,7 @@ SymbolFileDWARF::ParseType (const Symbol
                         if (!type_handled)
                         {
                             // We just have a function that isn't part of a class
-                            clang::FunctionDecl *function_decl = ast.CreateFunctionDeclaration (containing_decl_ctx,
+                            clang::FunctionDecl *function_decl = ast.CreateFunctionDeclaration (ignore_containing_context ? GetClangASTContext().GetTranslationUnitDecl() : containing_decl_ctx,
                                                                                                 type_name_cstr, 
                                                                                                 clang_type, 
                                                                                                 storage, 





More information about the lldb-commits mailing list