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

Reply via email to