[PATCH] D96816: [ObjC] Encode pointers to C++ classes as "^v" if the encoded string would otherwise include template specialization types

Nico Weber via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 18 12:05:54 PST 2021


thakis added a comment.

  #3  0x00007ffff78ee662 in __GI___assert_fail (assertion=0x90165c "idx < size()", 
      file=0xc60efe "../../llvm/include/llvm/ADT/SmallVector.h", line=281, 
      function=0xa8780d "llvm::SmallVectorTemplateCommon::const_reference llvm::SmallVectorTemplateCommon<unsigned long, void>::operator[](llvm::SmallVectorTemplateCommon::size_type) const [T = unsigned long]") at assert.c:101
  #4  0x000000000444401a in clang::ASTReader::ParseLanguageOptions(llvm::SmallVector<unsigned long, 64u> const&, bool, clang::ASTReaderListener&, bool) ()
  #5  0x000000000443eb62 in clang::ASTReader::ReadOptionsBlock(llvm::BitstreamCursor&, unsigned int, bool, clang::ASTReaderListener&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ()
  #6  0x00000000044474c5 in clang::ASTReader::ReadControlBlock(clang::serialization::ModuleFile&, llvm::SmallVectorImpl<clang::ASTReader::ImportedModule>&, clang::serialization::ModuleFile const*, unsigned int) ()
  #7  0x000000000444a901 in clang::ASTReader::ReadASTCore(llvm::StringRef, clang::serialization::ModuleKind, clang::SourceLocation, clang::serialization::ModuleFile*, llvm::SmallVectorImpl<clang::ASTReader::ImportedModule>&, long, long, clang::ASTFileSignature, unsigned int) ()
  #8  0x00000000044584f8 in clang::ASTReader::ReadAST(llvm::StringRef, clang::serialization::ModuleKind, clang::SourceLocation, unsigned int, llvm::SmallVectorImpl<clang::ASTReader::ImportedSubmodule>*) ()
  #9  0x00000000042c07a5 in clang::CompilerInstance::findOrCompileModuleAndReadAST(llvm::StringRef, clang::SourceLocation, clang::SourceLocation, bool) ()
  #10 0x00000000042c4650 in clang::CompilerInstance::loadModule(clang::SourceLocation, llvm::ArrayRef<std::pair<clang::IdentifierInfo*, clang::SourceLocation> >, clang::Module::NameVisibilityKind, bool) ()
  #11 0x00000000049713c6 in clang::Preprocessor::LexAfterModuleImport(clang::Token&) ()
  #12 0x0000000004972afb in clang::Preprocessor::Lex(clang::Token&) ()
  #13 0x0000000004e6421d in clang::Parser::ParseModuleName(clang::SourceLocation, llvm::SmallVectorImpl<std::pair<clang::IdentifierInfo*, clang::SourceLocation> >&, bool) ()
  #14 0x0000000004e5c9f5 in clang::Parser::ParseModuleImport(clang::SourceLocation) ()
  #15 0x0000000004ed2e23 in clang::Parser::ParseObjCAtDirectives(clang::Parser::ParsedAttributesWithRange&) ()
  #16 0x0000000004e5d802 in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) ()
  #17 0x0000000004e5b7e6 in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) ()
  #18 0x0000000004e5af77 in clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) ()
  #19 0x0000000004e5632d in clang::ParseAST(clang::Sema&, bool, bool) ()
  #20 0x000000000434e3a3 in clang::FrontendAction::Execute() ()
  #21 0x0000000004261cc6 in clang::ASTUnit::Parse(std::shared_ptr<clang::PCHContainerOperations>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) ()
  #22 0x0000000004265d8d in clang::ASTUnit::LoadFromCompilerInvocation(std::shared_ptr<clang::PCHContainerOperations>, unsigned int, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) ()
  #23 0x0000000004267090 in clang::ASTUnit::LoadFromCommandLine(char const**, char const**, std::shared_ptr<clang::PCHContainerOperations>, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>, llvm::StringRef, bool, clang::CaptureDiagsKind, llvm::ArrayRef<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, llvm::MemoryBuffer*> >, bool, unsigned int, clang::TranslationUnitKind, bool, bool, bool, clang::SkipFunctionBodiesScope, bool, bool, bool, bool, llvm::Optional<llvm::StringRef>, std::unique_ptr<clang::ASTUnit, std::default_delete<clang::ASTUnit> >*, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) ()
  #24 0x00000000045c7b05 in void llvm::function_ref<void ()>::callback_fn<clang_parseTranslationUnit2FullArgv::$_1>(long) ()
  #25 0x000000000464d955 in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) ()
  #26 0x000000000464db04 in RunSafelyOnThread_Dispatch(void*) ()

Maybe the problem is that the test reuses a serialized module from an earlier run, and this changes serialization stuff without bumping the serialization version?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D96816



More information about the cfe-commits mailing list