[clang] [clang-tools-extra] [clang] Improve nested name specifier AST representation (PR #147835)
Gábor Horváth via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 15 03:52:30 PDT 2025
Xazax-hun wrote:
We started to see a CI failure around the time this PR landed in https://green.lab.llvm.org/job/llvm.org/job/clang-stage2-Rthinlto/1079/
The build hangs in this step (using a stage 2 compiler):
```
12:39:17 [384/5387] : && DYLD_LIBRARY_PATH=/Users/ec2-user/jenkins/workspace/llvm.org/clang-stage2-Rthinlto/host-compiler/lib/ "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool" -static -no_warning_for_no_symbols -o lib/libbenchmark_main.a third-party/benchmark/src/CMakeFiles/benchmark_main.dir/benchmark_main.cc.o && :
```
This is where the compiler seems to hang:
```
Analysis of sampling clang++ (pid 12682) every 1 millisecond
Process: clang-22 [12682]
Path: /Users/*/clang-22
Load Address: 0x1054d1000
Identifier: clang-22
Version: 22.0.0git (0)
Code Type: X86-64
Platform: macOS
Parent Process: ninja [12327]
Date/Time: 2025-08-12 17:39:29.604 +0000
Launch Time: 2025-08-12 04:30:26.246 +0000
OS Version: macOS 15.1.1 (24B91)
Report Version: 7
Analysis Tool: /usr/bin/sample
Physical footprint: 83.4M
Physical footprint (peak): 83.4M
Idle exit: untracked
----
Call graph:
120 Thread_240531 DispatchQueue_1: com.apple.main-thread (serial)
120 start (in dyld) + 1805 [0x7ff804e212cd]
120 main (in clang-22) + 128 [0x1054e1670]
120 clang_main(int, char**, llvm::ToolContext const&) (in clang-22) + 5620 [0x1054d4254]
120 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (in clang-22) + 352 [0x108d26fa0]
120 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (in clang-22) + 143 [0x108d0cc5f]
120 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (in clang-22) + 524 [0x108d0ca5c]
120 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::basic_string<char>*, bool*) const (in clang-22) + 297 [0x108d433a9]
120 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (in clang-22) + 130 [0x10b389442]
120 llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::basic_string<char>*, bool*) const::$_0>(long) (in clang-22) + 30 [0x108d43ace]
120 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) (in clang-22) + 395 [0x1054d49db]
120 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (in clang-22) + 4289 [0x1054d77e1]
120 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (in clang-22) + 632 [0x106d7c3e8]
120 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (in clang-22) + 941 [0x108bfc91d]
120 clang::FrontendAction::Execute() (in clang-22) + 42 [0x108c7a14a]
120 clang::ParseAST(clang::Sema&, bool, bool) (in clang-22) + 782 [0x108ec538e]
120 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (in clang-22) + 1528 [0x108f9c968]
120 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (in clang-22) + 1391 [0x108f9e33f]
120 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (in clang-22) + 625 [0x108f9f8e1]
120 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (in clang-22) + 1314 [0x108fa00a2]
120 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (in clang-22) + 4893 [0x108ed9a1d]
120 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (in clang-22) + 2342 [0x108fa0b86]
120 clang::Sema::ActOnDefaultCtorInitializers(clang::Decl*) (in clang-22) + 101 [0x1093acc95]
120 clang::Sema::SetCtorInitializers(clang::CXXConstructorDecl*, bool, llvm::ArrayRef<clang::CXXCtorInitializer*>) (in clang-22) + 3444 [0x1093a8f84]
120 CollectFieldInitializer(clang::Sema&, (anonymous namespace)::BaseAndFieldInfo&, clang::FieldDecl*, clang::IndirectFieldDecl*) (in clang-22) + 3017 [0x1093aa979]
120 clang::InitializationSequence::InitializeFrom(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, bool, bool) (in clang-22) + 2750 [0x10956527e]
120 TryConstructorInitialization(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, clang::QualType, clang::QualType, clang::InitializationSequence&, bool, bool) (in clang-22) + 565 [0x109583df5]
120 clang::Sema::LookupConstructors(clang::CXXRecordDecl*) (in clang-22) + 152 [0x1095a60a8]
120 clang::DeclContext::lookupImpl(clang::DeclarationName, clang::DeclContext const*) const (in clang-22) + 733 [0x109d4f6bd]
120 clang::ASTReader::FindExternalVisibleDeclsByName(clang::DeclContext const*, clang::DeclarationName, clang::DeclContext const*) (in clang-22) + 453 [0x108ff3795]
120 _ZZN5clang9ASTReader30FindExternalVisibleDeclsByNameEPKNS_11DeclContextENS_15DeclarationNameES3_ENK3$_0clIRNS_13serialization20MultiOnDiskHashTableINS7_6reader29ASTDeclContextNameLookupTraitEEERS4_EEDaOT_OT0_ (in clang-22) + 105 [0x108ff39c9]
120 clang::ASTReader::GetDecl(clang::GlobalDeclID) (in clang-22) + 149 [0x108fe7615]
120 clang::ASTReader::ReadDeclRecord(clang::GlobalDeclID) (in clang-22) + 3749 [0x10905f335]
120 clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (in clang-22) + 47 [0x10a3621af]
120 clang::ASTDeclReader::Visit(clang::Decl*) (in clang-22) + 21 [0x1090338f5]
120 clang::ASTDeclReader::VisitCXXMethodDecl(clang::CXXMethodDecl*) (in clang-22) + 22 [0x109040d36]
120 clang::ASTDeclReader::VisitFunctionDecl(clang::FunctionDecl*) (in clang-22) + 5529 [0x109038089]
120 clang::ASTDeclReader::findExisting(clang::NamedDecl*) (in clang-22) + 995 [0x10905a8b3]
120 clang::ASTContext::isSameEntity(clang::NamedDecl const*, clang::NamedDecl const*) const (in clang-22) + 1921 [0x109b58981]
120 clang::NamedDecl::getLinkageInternal() const (in clang-22) + 168 [0x109d2cd78]
120 clang::LinkageComputer::getLVForDecl(clang::NamedDecl const*, clang::LVComputationKind) (in clang-22) + 151 [0x109d29eb7]
120 clang::LinkageComputer::getLVForClassMember(clang::NamedDecl const*, clang::LVComputationKind, bool) (in clang-22) + 648 [0x109d2b9b8]
120 clang::Type::getLinkage() const (in clang-22) + 14 [0x10a20ac3e]
120 clang::TypePropertyCache<(anonymous namespace)::Private>::ensure(clang::Type const*) (in clang-22) + 151 [0x10a20ad07]
120 clang::TypePropertyCache<(anonymous namespace)::Private>::ensure(clang::Type const*) (in clang-22) + 664 [0x10a20af08]
120 clang::TypePropertyCache<(anonymous namespace)::Private>::ensure(clang::Type const*) (in clang-22) + 380 [0x10a20adec]
120 clang::NamedDecl::getLinkageInternal() const (in clang-22) + 168 [0x109d2cd78]
91 clang::LinkageComputer::getLVForDecl(clang::NamedDecl const*, clang::LVComputationKind) (in clang-22) + 351 [0x109d29f7f]
+ 74 clang::Redeclarable<clang::TagDecl>::DeclLink::getPrevious(clang::TagDecl const*) const (in clang-22) + 6,1,... [0x1070c6706,0x1070c6701,...]
+ 17 clang::TagDecl::getNextRedeclarationImpl() (in clang-22) + 0,7,... [0x109d3da70,0x109d3da77,...]
29 clang::LinkageComputer::getLVForDecl(clang::NamedDecl const*, clang::LVComputationKind) (in clang-22) + 337,315,... [0x109d29f71,0x109d29f5b,...]
Total number in stack (recursive counted multiple, when >=5):
Sort by top of stack, same collapsed (when >= 5):
clang::Redeclarable<clang::TagDecl>::DeclLink::getPrevious(clang::TagDecl const*) const (in clang-22) 74
clang::LinkageComputer::getLVForDecl(clang::NamedDecl const*, clang::LVComputationKind) (in clang-22) 29
clang::TagDecl::getNextRedeclarationImpl() (in clang-22) 1
```
Any ideas what might be going on here?
https://github.com/llvm/llvm-project/pull/147835
More information about the cfe-commits
mailing list