Skip to content

"Invalidated the current SCC" assertion failure after #79712 #107139

@smeenai

Description

@smeenai

For the source file in https://gist.github.com/smeenai/fcd14380467e813a28f1ef8c5484b775 (reduced from a large example that uses libunifex; it's probably possible to reduce this further but I'm not at all familiar with coroutines), the following command succeeds with Clang 18 but fails with Clang 19 and trunk:

$ clang -c -o /dev/null coroutine_crash.cpp -std=c++20 -w
clang: llvm/lib/Analysis/CGSCCPassManager.cpp:1167: LazyCallGraph::SCC &updateCGAndAnalysisManagerForPass(llvm::LazyCallGraph &, LazyCallGraph::SCC &, LazyCallGraph::Node &, llvm::CGSCCAnalysisManager &, llvm::CGSCCUpdateResult &, llvm::FunctionAnalysisManager &, bool): Assertion `!UR.InvalidatedSCCs.count(C) && "Invalidated the current SCC!"' failed.

I bisected this to #79712. CC @fpasserby, @ChuanqiXu9, and @yuxuanchen1997

Metadata

Metadata

Labels

coroutinesC++20 coroutinescrashPrefer [crash-on-valid] or [crash-on-invalid]llvm:transforms

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions