alexfh wrote:
> I ran a build of all of our code with the assertions-enabled clang. So far
> I'm seeing compilation timeouts on a large number of compilations. I'm trying
> to figure out whether this is an infinite loop or a superlinear algorithm.
The stack trace after a few minutes of execution looks like this:
```
* frame #0: 0x000055555ae13b56
clang-checked`clang::ASTDeclMerger::MergeDefinitionData(clang::CXXRecordDecl*,
clang::CXXRecordDecl::DefinitionData&&) + 694
frame #1: 0x000055555ae1734e
clang-checked`clang::ASTDeclReader::VisitClassTemplateSpecializationDeclImpl(clang::ClassTemplateSpecializationDecl*)
+ 1006
frame #2: 0x000055555ae079f3
clang-checked`clang::declvisitor::Base<std::__u::add_pointer,
clang::ASTDeclReader, void>::Visit(clang::Decl*) + 1235
frame #3: 0x000055555ae071d5
clang-checked`clang::ASTDeclReader::Visit(clang::Decl*) + 21
frame #4: 0x000055555c29eb8f
clang-checked`clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation,
llvm::function_ref<void ()>) + 47
frame #5: 0x000055555ae2e911
clang-checked`clang::ASTReader::ReadDeclRecord(clang::GlobalDeclID) + 3409
frame #6: 0x000055555adaa595
clang-checked`clang::ASTReader::GetDecl(clang::GlobalDeclID) + 213
frame #7: 0x000055555ae37759 clang-checked`clang::DeclContext*
clang::ASTReader::ReadDeclAs<clang::DeclContext>(clang::serialization::ModuleFile&,
llvm::SmallVectorImpl<unsigned long> const&, unsigned int&) + 25
frame #8: 0x000055555ae080ab
clang-checked`clang::ASTDeclReader::VisitDecl(clang::Decl*) + 1099
frame #9: 0x000055555ae09ef2
clang-checked`clang::ASTDeclReader::VisitValueDecl(clang::ValueDecl*) + 18
frame #10: 0x000055555ae0a215
clang-checked`clang::ASTDeclReader::VisitDeclaratorDecl(clang::DeclaratorDecl*)
+ 21
frame #11: 0x000055555ae0af0a
clang-checked`clang::ASTDeclReader::VisitFunctionDecl(clang::FunctionDecl*) +
2666
frame #12: 0x000055555ae153d6
clang-checked`clang::ASTDeclReader::VisitCXXMethodDecl(clang::CXXMethodDecl*) +
22
frame #13: 0x000055555ae071d5
clang-checked`clang::ASTDeclReader::Visit(clang::Decl*) + 21
frame #14: 0x000055555c29eb8f
clang-checked`clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation,
llvm::function_ref<void ()>) + 47
frame #15: 0x000055555ae2e911
clang-checked`clang::ASTReader::ReadDeclRecord(clang::GlobalDeclID) + 3409
frame #16: 0x000055555adaa595
clang-checked`clang::ASTReader::GetDecl(clang::GlobalDeclID) + 213
frame #17: 0x000055555ae4b098
clang-checked`clang::ASTStmtReader::VisitMemberExpr(clang::MemberExpr*) + 152
frame #18: 0x000055555ae5b3e1
clang-checked`clang::ASTReader::ReadStmtFromStream(clang::serialization::ModuleFile&)
+ 14081
frame #19: 0x000055555adb585d
clang-checked`clang::ASTReader::GetExternalDeclStmt(unsigned long) + 413
frame #20: 0x000055555bdf8959
clang-checked`clang::FunctionDecl::getBody(clang::FunctionDecl const*&) const +
217
frame #21: 0x000055555be05591 clang-checked`clang::FunctionDecl::getBody()
const + 17
frame #22: 0x000055555a12493d
clang-checked`clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl,
llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 797
frame #23: 0x000055555a15084c
clang-checked`clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl,
llvm::GlobalValue*) + 396
frame #24: 0x000055555a147ea2
clang-checked`clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl,
llvm::GlobalValue*) + 514
frame #25: 0x000055555a138856
clang-checked`clang::CodeGen::CodeGenModule::EmitDeferred() + 822
frame #26: 0x000055555a138872
clang-checked`clang::CodeGen::CodeGenModule::EmitDeferred() + 850
frame #27: 0x000055555a138872
clang-checked`clang::CodeGen::CodeGenModule::EmitDeferred() + 850
frame #28: 0x000055555a138872
clang-checked`clang::CodeGen::CodeGenModule::EmitDeferred() + 850
frame #29: 0x000055555a138872
clang-checked`clang::CodeGen::CodeGenModule::EmitDeferred() + 850
frame #30: 0x000055555a138872
clang-checked`clang::CodeGen::CodeGenModule::EmitDeferred() + 850
frame #31: 0x000055555a138872
clang-checked`clang::CodeGen::CodeGenModule::EmitDeferred() + 850
frame #32: 0x000055555a138872
clang-checked`clang::CodeGen::CodeGenModule::EmitDeferred() + 850
frame #33: 0x000055555a1351ee
clang-checked`clang::CodeGen::CodeGenModule::Release() + 78
frame #34: 0x000055555a27acee clang-checked`(anonymous
namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) + 46
frame #35: 0x0000555559dd3b9a
clang-checked`clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
+ 154
frame #36: 0x000055555ac77788 clang-checked`clang::ParseAST(clang::Sema&,
bool, bool) + 616
frame #37: 0x000055555a9ad5aa
clang-checked`clang::FrontendAction::Execute() + 42
frame #38: 0x000055555a92145d
clang-checked`clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) +
1117
frame #39: 0x0000555559dd316e
clang-checked`clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 526
frame #40: 0x0000555559dc65ea clang-checked`cc1_main(llvm::ArrayRef<char
const*>, char const*, void*) + 1834
frame #41: 0x0000555559dc3619
clang-checked`ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&,
llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) + 377
frame #42: 0x0000555559dc5dcc clang-checked`int llvm::function_ref<int
(llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**,
llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) + 44
frame #43: 0x000055555aae291e clang-checked`void llvm::function_ref<void
()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__u::optional<llvm::StringRef>>,
std::__u::basic_string<char, std::__u::char_traits<char>,
std::__u::allocator<char>>*, bool*) const::$_0>(long) + 30
frame #44: 0x000055555fc831dc
clang-checked`llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void
()>) + 124
frame #45: 0x000055555aae1e04
clang-checked`clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__u::optional<llvm::StringRef>>,
std::__u::basic_string<char, std::__u::char_traits<char>,
std::__u::allocator<char>>*, bool*) const + 260
frame #46: 0x000055555aa9f453
clang-checked`clang::driver::Compilation::ExecuteCommand(clang::driver::Command
const&, clang::driver::Command const*&, bool) const + 595
frame #47: 0x000055555aa9f6df
clang-checked`clang::driver::Compilation::ExecuteJobs(clang::driver::JobList
const&, llvm::SmallVectorImpl<std::__u::pair<int, clang::driver::Command
const*>>&, bool) const + 127
frame #48: 0x000055555aab9dc0
clang-checked`clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::__u::pair<int, clang::driver::Command const*>>&) +
352
frame #49: 0x0000555559dc2c1e clang-checked`clang_main(int, char**,
llvm::ToolContext const&) + 6206
```
I can look a bit closer tomorrow.
https://github.com/llvm/llvm-project/pull/170823
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits