[Lldb-commits] [lldb] r367441 - Don't crash when pass by value struct has no definition.

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Wed Jul 31 11:29:27 PDT 2019



> On Jul 31, 2019, at 10:57 AM, Raphael Isemann <teemperor at gmail.com> wrote:
> 
> It seems that patch is lacking a test (which doesn't seem too hard to provide).

I am not the original author of this patch that was causing the crash, just fixing a crash that was introduced by the patch. 

I am all ears for anyone that can provide me with DWARF to help reproduce this scenario where we have a DW_CC_pass_by_value struct with no definition. Not sure how you would have a compiler that is passing a struct to a function as a parameter and yet does not emit debug info for that struct it is clearly using in the debug info.

> 
> Am Mi., 31. Juli 2019 um 18:24 Uhr schrieb Greg Clayton via
> lldb-commits <lldb-commits at lists.llvm.org>:
>> 
>> Author: gclayton
>> Date: Wed Jul 31 09:24:55 2019
>> New Revision: 367441
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=367441&view=rev
>> Log:
>> Don't crash when pass by value struct has no definition.
>> 
>> 
>> 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=367441&r1=367440&r2=367441&view=diff
>> ==============================================================================
>> --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp (original)
>> +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp Wed Jul 31 09:24:55 2019
>> @@ -1010,7 +1010,7 @@ TypeSP DWARFASTParserClang::ParseTypeFro
>>     if (attrs.calling_convention == llvm::dwarf::DW_CC_pass_by_value) {
>>       clang::CXXRecordDecl *record_decl =
>>           m_ast.GetAsCXXRecordDecl(clang_type.GetOpaqueQualType());
>> -      if (record_decl) {
>> +      if (record_decl && record_decl->getDefinition()) {
>>         record_decl->setHasTrivialSpecialMemberForCall();
>>       }
>>     }
>> 
>> 
>> _______________________________________________
>> lldb-commits mailing list
>> lldb-commits at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits



More information about the lldb-commits mailing list