[Lldb-commits] [PATCH] D73808: [lldb/TypeSystemClang] Supply trivial TypeSourceInfo to NonTypeTemplateParmDecl::Create

Vedant Kumar via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Feb 4 14:23:43 PST 2020


vsk added a comment.

The original sanitizer report /does/ show UB in the NonTypeTemplateParmDecl static constructor:

  * thread #1, queue = 'com.apple.main-thread', stop reason = Null pointer use                                                                                        
    * frame #0: 0x000000013ea61cb0 libclang_rt.asan_osx_dynamic.dylib`__ubsan_on_report                                                                               
      frame #1: 0x000000013ea5c76b libclang_rt.asan_osx_dynamic.dylib`__ubsan::Diag::~Diag() + 219                                                                    
      frame #2: 0x000000013ea5ded3 libclang_rt.asan_osx_dynamic.dylib`handleTypeMismatchImpl(__ubsan::TypeMismatchData*, unsigned long, __ubsan::ReportOptions) + 1155
      frame #3: 0x000000013ea5e00c libclang_rt.asan_osx_dynamic.dylib`__ubsan_handle_type_mismatch_v1_abort + 60                                                      
      frame #4: 0x000000011b383f5a liblldb.11.0.0git.dylib`clang::NonTypeTemplateParmDecl::Create(C=0x00006290000c3200, DC=0x0000621008793930, StartLoc=(ID = 0), IdLo
  c=(ID = 0), D=0, P=1, Id=0x0000621008cfb668, T=QualType @ 0x00007ffeefbec980, ParameterPack=false, TInfo=0x0000000000000000) at DeclTemplate.cpp:692:25             
      frame #5: 0x00000001025a1d51 liblldb.11.0.0git.dylib`CreateTemplateParameterList(ast=0x00006290000c3200, template_param_infos=0x00007ffeefbedf50, template_param
  _decls=0x00007ffeefbed500) at ClangASTContext.cpp:1272:38
      frame #6: 0x00000001025a4fcc liblldb.11.0.0git.dylib`lldb_private::ClangASTContext::CreateClassTemplateDecl(this=0x0000612000054c58, decl_ctx=0x00006210087942d0
  , access_type=eAccessNone, class_name="BumpPtrAllocatorImpl", kind=3, template_param_infos=0x00007ffeefbedf50) at ClangASTContext.cpp:1373:48
      frame #7: 0x0000000102641e03 liblldb.11.0.0git.dylib`lldb_private::ClangASTContext::ParseClassTemplateDecl(this=0x0000612000054c58, decl_ctx=0x00006210087942d0,
   access_type=eAccessNone, parent_name="BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096, 4096>", tag_decl_kind=3, template_param_infos=0x00007ffeefbedf50) at ClangA
  STContext.cpp:8792:12
      frame #8: 0x0000000104bb96e2 liblldb.11.0.0git.dylib`DWARFASTParserClang::ParseStructureLikeDIE(this=0x000060d00005bad0, sc=0x00007ffeefbefe80, die=0x00007ffeef
  bf0520, attrs=0x00007ffeefbef180) at DWARFASTParserClang.cpp:1617:19
      frame #9: 0x0000000104baf779 liblldb.11.0.0git.dylib`DWARFASTParserClang::ParseTypeFromDWARF(this=0x000060d00005bad0, sc=0x00007ffeefbefe80, die=0x00007ffeefbf0
  520, type_is_new_ptr=0x0000000000000000) at DWARFASTParserClang.cpp:491:15
      frame #10: 0x0000000104d3f396 liblldb.11.0.0git.dylib`SymbolFileDWARF::ParseType(this=0x000061b000089680, sc=0x00007ffeefbefe80, die=0x00007ffeefbf0520, type_is
  _new_ptr=0x0000000000000000) at SymbolFileDWARF.cpp:3058:31
      frame #11: 0x0000000104d2049e liblldb.11.0.0git.dylib`SymbolFileDWARF::GetTypeForDIE(this=0x000061b000089680, die=0x00007ffeefbf0520, resolve_function_context=f
  alse) at SymbolFileDWARF.cpp:2649:17
      frame #12: 0x0000000104d1bc1f liblldb.11.0.0git.dylib`SymbolFileDWARF::ResolveType(this=0x000061b000089680, die=0x00007ffeefbf0520, assert_not_being_parsed=true
  , resolve_function_context=false) at SymbolFileDWARF.cpp:1456:18
      frame #13: 0x0000000104d1b42e liblldb.11.0.0git.dylib`SymbolFileDWARF::ResolveTypeUID(this=0x000061b000089680, type_uid=4295014635) at SymbolFileDWARF.cpp:1324:
  21

Maybe it moved here?

  AutoType *AT = TInfo->getType()->getContainedAutoType();

Or maybe `Revert "[Concepts] Placeholder constraints and abbreviated templates"` on 1/23 hides the bug?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73808/new/

https://reviews.llvm.org/D73808





More information about the lldb-commits mailing list