Closed ericniebler closed 3 weeks ago
@llvm/issue-subscribers-clang-frontend
@llvm/issue-subscribers-c-20
One reduction of this crash has been fixed in post-18 trunk: https://godbolt.org/z/P1zad4cKP Reduced by me and C-Reduce:
auto a =
[](auto... __captures) {
return []() requires requires { 0(__captures...); } {};
}()();
Clang 17 crash:
clang++: /root/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:4181:
llvm::PointerUnion<clang::Decl*, llvm::SmallVector<clang::VarDecl*, 4>*>* clang::LocalInstantiationScope::findInstantiationOf(const clang::Decl*):
Assertion `isa<LabelDecl>(D) && "declaration not instantiated in this scope"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-assertions-17.0.1/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-13.2.0 -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>
1. <source>:4:7: current parser token ')'
#0 0x00000000036e7558 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x36e7558)
#1 0x00000000036e53dc llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x36e53dc)
#2 0x0000000003632918 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007fc5d5642520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007fc5d56969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x00007fc5d5642476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x00007fc5d56287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x00007fc5d562871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x00007fc5d5639e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x00000000068e3b85 clang::LocalInstantiationScope::findInstantiationOf(clang::Decl const*) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x68e3b85)
#10 0x0000000006989c59 clang::Sema::CheckParameterPacksForExpansion(clang::SourceLocation, clang::SourceRange, llvm::ArrayRef<std::pair<llvm::PointerUnion<clang::TemplateTypeParmType const*, clang::NamedDecl*>, clang::SourceLocation>>, clang::MultiLevelTemplateArgumentList const&, bool&, bool&, std::optional<unsigned int>&) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x6989c59)
#11 0x00000000068ec04d clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExprs(clang::Expr* const*, unsigned int, bool, llvm::SmallVectorImpl<clang::Expr*>&, bool*) SemaTemplateInstantiate.cpp:0:0
#12 0x00000000068f48e1 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) SemaTemplateInstantiate.cpp:0:0
#13 0x00000000068eafe2 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#14 0x0000000006913311 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformRequiresExpr(clang::RequiresExpr*) SemaTemplateInstantiate.cpp:0:0
#15 0x0000000006914d1e (anonymous namespace)::TemplateInstantiator::TransformRequiresExpr(clang::RequiresExpr*) SemaTemplateInstantiate.cpp:0:0
#16 0x00000000068eab42 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#17 0x0000000006925718 clang::Sema::SubstConstraintExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x6925718)
#18 0x00000000060954e7 calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, clang::SourceLocation, clang::MultiLevelTemplateArgumentList const&, clang::Expr const*, clang::ConstraintSatisfaction&)::'lambda'(clang::Expr const*)::operator()(clang::Expr const*) const SemaConcept.cpp:0:0
#19 0x0000000006096b3b clang::ActionResult<clang::Expr*, true> calculateConstraintSatisfaction<calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, clang::SourceLocation, clang::MultiLevelTemplateArgumentList const&, clang::Expr const*, clang::ConstraintSatisfaction&)::'lambda'(clang::Expr const*)>(clang::Sema&, clang::Expr const*, clang::ConstraintSatisfaction&, calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, clang::SourceLocation, clang::MultiLevelTemplateArgumentList const&, clang::Expr const*, clang::ConstraintSatisfaction&)::'lambda'(clang::Expr const*)&&) SemaConcept.cpp:0:0
#20 0x0000000006097342 CheckConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::SmallVectorImpl<clang::Expr*>&, clang::MultiLevelTemplateArgumentList const&, clang::SourceRange, clang::ConstraintSatisfaction&) SemaConcept.cpp:0:0
#21 0x000000000609797a clang::Sema::CheckConstraintSatisfaction(clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::SmallVectorImpl<clang::Expr*>&, clang::MultiLevelTemplateArgumentList const&, clang::SourceRange, clang::ConstraintSatisfaction&) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x609797a)
#22 0x00000000060993d3 clang::Sema::CheckFunctionConstraints(clang::FunctionDecl const*, clang::ConstraintSatisfaction&, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x60993d3)
#23 0x00000000066cbf54 clang::Sema::AddMethodCandidate(clang::CXXMethodDecl*, clang::DeclAccessPair, clang::CXXRecordDecl*, clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, llvm::MutableArrayRef<clang::ImplicitConversionSequence>, clang::OverloadCandidateParamOrder) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x66cbf54)
#24 0x00000000066cd3eb clang::Sema::AddMethodCandidate(clang::DeclAccessPair, clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, clang::OverloadCandidateParamOrder) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x66cd3eb)
#25 0x00000000066e7d3b clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x66e7d3b)
#26 0x000000000638eed8 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x638eed8)
#27 0x0000000006390d3c clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x6390d3c)
#28 0x0000000005e585c0 clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5e585c0)
#29 0x0000000005e50751 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5e50751)
#30 0x0000000005e5389a clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5e5389a)
#31 0x0000000005e53a39 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5e53a39)
#32 0x0000000005e1502d clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5e1502d)
#33 0x0000000005e21f40 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5e21f40)
#34 0x0000000005defc4a clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5defc4a)
#35 0x0000000005df04df clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (.part.0) Parser.cpp:0:0
#36 0x0000000005df6b51 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5df6b51)
#37 0x0000000005df7452 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5df7452)
#38 0x0000000005df78a0 clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5df78a0)
#39 0x0000000005deb732 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x5deb732)
#40 0x0000000004939258 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x4939258)
#41 0x00000000041a1c09 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x41a1c09)
#42 0x00000000041278ce clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x41278ce)
#43 0x0000000004281de6 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x4281de6)
#44 0x0000000000bc67eb cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0xbc67eb)
#45 0x0000000000bbefaa ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#46 0x0000000003f83419 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#47 0x0000000003632dc4 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x3632dc4)
#48 0x0000000003f83a0f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#49 0x0000000003f4b275 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x3f4b275)
#50 0x0000000003f4bcdd clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x3f4bcdd)
#51 0x0000000003f5385d clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0x3f5385d)
#52 0x0000000000bc4a87 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0xbc4a87)
#53 0x0000000000abef61 main (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0xabef61)
#54 0x00007fc5d5629d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#55 0x00007fc5d5629e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#56 0x0000000000bbea8e _start (/opt/compiler-explorer/clang-assertions-17.0.1/bin/clang+++0xbbea8e)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134
However, a different reduction is still crashing in post-18 trunk: https://godbolt.org/z/MP45d35bj Reduced by me and C-Reduce:
template <class _ImplFn>
struct __basic_sender {
__basic_sender(_ImplFn);
};
auto a =
__basic_sender {
[](auto... __captures) {
return []() requires requires { 0(__captures...); } {};
}()
}
Backtrace:
clang++: /root/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:4272: llvm::PointerUnion<clang::Decl*, llvm::SmallVector<clang::VarDecl*, 4>*>* clang::LocalInstantiationScope::findInstantiationOf(const clang::Decl*): Assertion `isa<LabelDecl>(D) && "declaration not instantiated in this scope"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>
1. <eof> parser at end of file
#0 0x000000000388a128 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x388a128)
#1 0x0000000003887e0c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3887e0c)
#2 0x00000000037d02e8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007f628b042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f628b0969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x00007f628b042476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x00007f628b0287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x00007f628b02871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x00007f628b039e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x0000000006bfc5ac clang::LocalInstantiationScope::findInstantiationOf(clang::Decl const*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6bfc5ac)
#10 0x0000000006ca93a9 clang::Sema::CheckParameterPacksForExpansion(clang::SourceLocation, clang::SourceRange, llvm::ArrayRef<std::pair<llvm::PointerUnion<clang::TemplateTypeParmType const*, clang::NamedDecl*>, clang::SourceLocation>>, clang::MultiLevelTemplateArgumentList const&, bool&, bool&, std::optional<unsigned int>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6ca93a9)
#11 0x0000000006c054fd clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExprs(clang::Expr* const*, unsigned int, bool, llvm::SmallVectorImpl<clang::Expr*>&, bool*) SemaTemplateInstantiate.cpp:0:0
#12 0x0000000006c0fa21 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) SemaTemplateInstantiate.cpp:0:0
#13 0x0000000006c03d28 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#14 0x0000000006c2f076 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformRequiresExpr(clang::RequiresExpr*) SemaTemplateInstantiate.cpp:0:0
#15 0x0000000006c30c5e (anonymous namespace)::TemplateInstantiator::TransformRequiresExpr(clang::RequiresExpr*) SemaTemplateInstantiate.cpp:0:0
#16 0x0000000006c04201 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#17 0x0000000006c39ac4 clang::Sema::SubstConstraintExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6c39ac4)
#18 0x0000000006389670 calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, clang::SourceLocation, clang::MultiLevelTemplateArgumentList const&, clang::Expr const*, clang::ConstraintSatisfaction&)::'lambda'(clang::Expr const*)::operator()(clang::Expr const*) const SemaConcept.cpp:0:0
#19 0x000000000638ad5b clang::ActionResult<clang::Expr*, true> calculateConstraintSatisfaction<calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, clang::SourceLocation, clang::MultiLevelTemplateArgumentList const&, clang::Expr const*, clang::ConstraintSatisfaction&)::'lambda'(clang::Expr const*)>(clang::Sema&, clang::Expr const*, clang::ConstraintSatisfaction&, calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, clang::SourceLocation, clang::MultiLevelTemplateArgumentList const&, clang::Expr const*, clang::ConstraintSatisfaction&)::'lambda'(clang::Expr const*)&&) SemaConcept.cpp:0:0
#20 0x000000000638b572 CheckConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::SmallVectorImpl<clang::Expr*>&, clang::MultiLevelTemplateArgumentList const&, clang::SourceRange, clang::ConstraintSatisfaction&) SemaConcept.cpp:0:0
#21 0x000000000638bbaa clang::Sema::CheckConstraintSatisfaction(clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::SmallVectorImpl<clang::Expr*>&, clang::MultiLevelTemplateArgumentList const&, clang::SourceRange, clang::ConstraintSatisfaction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x638bbaa)
#22 0x000000000638d6d0 clang::Sema::CheckFunctionConstraints(clang::FunctionDecl const*, clang::ConstraintSatisfaction&, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x638d6d0)
#23 0x000000000638d062 clang::Sema::CheckFunctionConstraints(clang::FunctionDecl const*, clang::ConstraintSatisfaction&, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x638d062)
#24 0x00000000069d5bfc clang::Sema::AddConversionCandidate(clang::CXXConversionDecl*, clang::DeclAccessPair, clang::CXXRecordDecl*, clang::Expr*, clang::QualType, clang::OverloadCandidateSet&, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x69d5bfc)
#25 0x00000000069dd61c IsUserDefinedConversion(clang::Sema&, clang::Expr*, clang::QualType, clang::UserDefinedConversionSequence&, clang::OverloadCandidateSet&, clang::Sema::AllowedExplicit, bool) SemaOverload.cpp:0:0
#26 0x00000000069de2a0 TryUserDefinedConversion(clang::Sema&, clang::Expr*, clang::QualType, bool, clang::Sema::AllowedExplicit, bool, bool, bool, bool) (.constprop.0) SemaOverload.cpp:0:0
#27 0x00000000069de854 TryImplicitConversion(clang::Sema&, clang::Expr*, clang::QualType, bool, clang::Sema::AllowedExplicit, bool, bool, bool, bool) SemaOverload.cpp:0:0
#28 0x00000000069d7ba7 TryReferenceInit(clang::Sema&, clang::Expr*, clang::QualType, clang::SourceLocation, bool, bool) SemaOverload.cpp:0:0
#29 0x00000000069d91bf TryCopyInitialization(clang::Sema&, clang::Expr*, clang::QualType, bool, bool, bool, bool) SemaOverload.cpp:0:0
#30 0x00000000069dbd46 clang::Sema::AddOverloadCandidate(clang::FunctionDecl*, clang::DeclAccessPair, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, bool, clang::CallExpr::ADLCallKind, llvm::MutableArrayRef<clang::ImplicitConversionSequence>, clang::OverloadCandidateParamOrder, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x69dbd46)
#31 0x0000000006825000 ResolveConstructorOverload(clang::Sema&, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, clang::QualType, clang::DeclContextLookupResult, clang::OverloadCandidate*&, bool, bool, bool, bool, bool, bool) SemaInit.cpp:0:0
#32 0x00000000068366d2 TryConstructorInitialization(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, clang::QualType, clang::QualType, clang::InitializationSequence&, bool, bool) SemaInit.cpp:0:0
#33 0x0000000006840843 TryListInitialization(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, clang::InitListExpr*, clang::InitializationSequence&, bool) SemaInit.cpp:0:0
#34 0x000000000683de7b clang::InitializationSequence::InitializeFrom(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x683de7b)
#35 0x0000000006755be1 clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6755be1)
#36 0x00000000067e22ed clang::Sema::ActOnCXXTypeConstructExpr(clang::OpaquePtr<clang::QualType>, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x67e22ed)
#37 0x0000000006158d06 clang::Parser::ParseCXXTypeConstructExpression(clang::DeclSpec const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6158d06)
#38 0x000000000613b6b5 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x613b6b5)
#39 0x000000000613a24a clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x613a24a)
#40 0x000000000613d28a clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x613d28a)
#41 0x000000000613d429 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x613d429)
#42 0x00000000060faebd clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x60faebd)
#43 0x0000000006109e7a clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6109e7a)
#44 0x00000000060c7c1e clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x60c7c1e)
#45 0x00000000060c83f1 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x60c83f1)
#46 0x00000000060cf6b6 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x60cf6b6)
#47 0x00000000060d055d clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x60d055d)
#48 0x00000000060c341a clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x60c341a)
#49 0x0000000004118c48 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4118c48)
#50 0x0000000004389719 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4389719)
#51 0x00000000043081ee clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x43081ee)
#52 0x000000000446940e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x446940e)
#53 0x0000000000c126b6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc126b6)
#54 0x0000000000c09eca ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#55 0x000000000415a1f9 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#56 0x00000000037d0794 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x37d0794)
#57 0x000000000415a7ef clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#58 0x00000000041224e5 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x41224e5)
#59 0x0000000004122f4d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4122f4d)
#60 0x000000000412ae85 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x412ae85)
#61 0x0000000000c0fa3c clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc0fa3c)
#62 0x0000000000b06be4 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xb06be4)
#63 0x00007f628b029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#64 0x00007f628b029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#65 0x0000000000c099ae _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc099ae)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134
@Endilll Looks like everything was fixed, can you confirm/close?
I can confirm that the current trunk (20.0) does not crash on the original reproducer. Output is the following:
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:349:82: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<76>{"The specified meta-function could [...]"}>' requested here
349 | "The specified meta-function could not be evaluated with the types provided."__csz;
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:36:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__sender_utils.hpp:89:5: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
89 | friend auto tag_invoke(_Tag, _Self&& __self, _Env&& __env) //
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:2932:74: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<68>{"The specified function is not call[...]"}>' requested here
2932 | "The specified function is not callable with the arguments provided."__csz;
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:3055:88: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<38>{"In stdexec::then(Sender, Function)[...]"}>' requested here
3055 | inline constexpr __mstring __then_context = "In stdexec::then(Sender, Function)..."__csz;
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:3205:52: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<44>{"In stdexec::upon_error(Sender, Fun[...]"}>' requested here
3205 | "In stdexec::upon_error(Sender, Function)..."__csz;
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:3356:54: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<46>{"In stdexec::upon_stopped(Sender, F[...]"}>' requested here
3356 | "In stdexec::upon_stopped(Sender, Function)..."__csz;
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:3448:95: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<45>{"In stdexec::bulk(Sender, Shape, Fu[...]"}>' requested here
3448 | inline constexpr __mstring __bulk_context = "In stdexec::bulk(Sender, Shape, Function)..."__csz;
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:3913:9: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
3913 | friend auto tag_invoke(get_completion_signatures_t, _Self&&, _OtherEnv&&)
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4227:9: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
4227 | friend auto tag_invoke(get_completion_signatures_t, _Self&&, _OtherEnv&&)
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4299:80: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<43>{"In stdexec::let_value(Sender, Func[...]"}>' requested here
4299 | using __t = __callable_error<"In stdexec::let_value(Sender, Function)..."__csz>;
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4304:80: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<43>{"In stdexec::let_error(Sender, Func[...]"}>' requested here
4304 | using __t = __callable_error<"In stdexec::let_error(Sender, Function)..."__csz>;
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4309:82: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<45>{"In stdexec::let_stopped(Sender, Fu[...]"}>' requested here
4309 | using __t = __callable_error<"In stdexec::let_stopped(Sender, Function)..."__csz>;
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4487:9: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
4487 | friend auto tag_invoke(get_completion_signatures_t, _Self&&, _Env&&)
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4491:9: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
4491 | friend auto tag_invoke(get_completion_signatures_t, _Self&&, _Env&&)
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4659:9: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
4659 | friend auto tag_invoke(get_completion_signatures_t, _Self&&, _Env&&)
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:5179:9: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
5179 | friend auto tag_invoke(get_completion_signatures_t, _Self&&, _Env&&)
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:5183:9: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
5183 | friend auto tag_invoke(get_completion_signatures_t, _Self&&, _Env&&)
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:5392:9: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
5392 | friend auto tag_invoke(get_completion_signatures_t, _Self&&, _Env&&)
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:19:
In file included from /home/eniebler/Code/stdexec/include/stdexec/execution.hpp:31:
In file included from /home/eniebler/Code/stdexec/include/stdexec/__detail/__execution_fwd.hpp:19:
/home/eniebler/Code/stdexec/include/stdexec/__detail/__meta.hpp:167:29: warning: user-defined literal suffixes containing '__' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
167 | constexpr __mtypeof<_Str> operator""__csz() noexcept {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:6426:70: note: in instantiation of function template specialization 'stdexec::operator""__csz<__mstring<41>{"You cannot pipe one sender into an[...]"}>' requested here
6426 | template <auto _Reason = "You cannot pipe one sender into another."__csz>
| ^
In file included from /home/eniebler/Code/stdexec/examples/hello_world.cpp:21:
/home/eniebler/Code/stdexec/include/exec/static_thread_pool.hpp:465:5: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
465 | friend auto tag_invoke(stdexec::get_completion_signatures_t, Self&&, Env&&)
| ^
/home/eniebler/Code/stdexec/include/exec/static_thread_pool.hpp:469:5: error: friend declaration with a constraint that depends on an enclosing template parameter must be a definition
469 | friend auto tag_invoke(stdexec::get_completion_signatures_t, Self&&, Env&&)
| ^
/home/eniebler/Code/stdexec/examples/hello_world.cpp:47:12: error: no matching function for call to object of type 'const let_value_t'
47 | auto y = let_value(get_scheduler(), [](auto sched) {
| ^~~~~~~~~
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4509:19: note: candidate template ignored: constraints not satisfied [with _Sender = __sender<get_scheduler_t>, _Fun = (lambda at /home/eniebler/Code/stdexec/examples/hello_world.cpp:47:39)]
4509 | sender auto operator()(_Sender&& __sndr, _Fun __fun) const
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4508:18: note: because '__tag_invocable_with_domain<stdexec::__let::let_value_t, set_value_t, stdexec::__read::__sender<stdexec::__queries::get_scheduler_t>, (lambda at /home/eniebler/Code/stdexec/examples/hello_world.cpp:47:39)>' evaluated to false
4508 | requires __tag_invocable_with_domain<_LetTag, set_value_t, _Sender, _Fun>
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:1971:5: note: because 'tag_invocable<stdexec::__let::let_value_t, __sender_domain_of_t<__sender<get_scheduler_t>, set_value_t>, stdexec::__read::__sender<stdexec::__queries::get_scheduler_t>, (lambda at /home/eniebler/Code/stdexec/examples/hello_world.cpp:47:39)>' evaluated to false
1971 | tag_invocable<_Fun, __sender_domain_of_t<_Sender, _CPO>, _Sender, _As...>;
| ^
/home/eniebler/Code/stdexec/include/stdexec/functional.hpp:136:49: note: because 'tag_invoke((_Tag &&)__tag, (_Args &&)__args...)' would be invalid: no matching function for call to 'tag_invoke'
136 | requires(_Tag __tag, _Args&&... __args) { tag_invoke((_Tag&&) __tag, (_Args&&) __args...); };
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4518:19: note: candidate template ignored: constraints not satisfied [with _Sender = __sender<get_scheduler_t>, _Fun = (lambda at /home/eniebler/Code/stdexec/examples/hello_world.cpp:47:39)]
4518 | sender auto operator()(_Sender&& __sndr, _Fun __fun) const
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4517:17: note: because 'tag_invocable<stdexec::__let::let_value_t, stdexec::__read::__sender<stdexec::__queries::get_scheduler_t>, (lambda at /home/eniebler/Code/stdexec/examples/hello_world.cpp:47:39)>' evaluated to false
4517 | && tag_invocable<_LetTag, _Sender, _Fun>
| ^
/home/eniebler/Code/stdexec/include/stdexec/functional.hpp:136:49: note: because 'tag_invoke((_Tag &&)__tag, (_Args &&)__args...)' would be invalid: no matching function for call to 'tag_invoke'
136 | requires(_Tag __tag, _Args&&... __args) { tag_invoke((_Tag&&) __tag, (_Args&&) __args...); };
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4526:31: note: candidate template ignored: constraints not satisfied [with _Sender = __sender<get_scheduler_t>, _Fun = (lambda at /home/eniebler/Code/stdexec/examples/hello_world.cpp:47:39)]
4526 | __sender<_Sender, _Fun> operator()(_Sender&& __sndr, _Fun __fun) const {
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4525:61: note: because '__sender<__sender<get_scheduler_t>, (lambda at /home/eniebler/Code/stdexec/examples/hello_world.cpp:47:39)>' (aka 'stdexec::__let::__sender<stdexec::__read::__sender<stdexec::__queries::get_scheduler_t>, (lambda at /home/eniebler/Code/stdexec/examples/hello_world.cpp:47:39), stdexec::__let::let_value_t>::__t') does not satisfy 'sender'
4525 | && (!tag_invocable<_LetTag, _Sender, _Fun>) && sender<__sender<_Sender, _Fun>>
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:1251:5: note: because 'stdexec::__let::__sender<stdexec::__read::__sender<stdexec::__queries::get_scheduler_t>, (lambda at /home/eniebler/Code/stdexec/examples/hello_world.cpp:47:39), stdexec::__let::let_value_t>::__t' does not satisfy '__sender'
1251 | __sender<_Sender> && //
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:1241:7: note: because 'get_completion_signatures((_Sender &&)__sndr, (_Env &&)__env)' would be invalid: no matching function for call to object of type 'const get_completion_signatures_t'
1241 | get_completion_signatures((_Sender&&) __sndr, (_Env&&) __env);
| ^
/home/eniebler/Code/stdexec/include/stdexec/execution.hpp:4531:36: note: candidate function template not viable: requires single argument '__fun', but 2 arguments were provided
4531 | __binder_back<_LetTag, _Fun> operator()(_Fun __fun) const {
| ^ ~~~~~~~~~~
11 warnings and 12 errors generated.
hello_world.zip