[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