alexfh wrote: It turns out debug build of clang before this patch generated an assertion on the original code as well: ``` assert.h assertion failed at llvm-project/clang/lib/AST/ExprConstant.cpp:15739 in bool clang::Expr::EvaluateAsConstantExpr(EvalResult &, const ASTContext &, ConstantExprKind) const: !isValueDependent() && "Expression evaluator can't be called on a dependent expression." ... @ 0x5643bcdac9e4 __assert_fail @ 0x5643b9734df7 clang::Expr::EvaluateAsConstantExpr() @ 0x5643b89f7fea calculateConstraintSatisfaction<>() @ 0x5643b89f1bcf CheckConstraintSatisfaction() @ 0x5643b89f193e clang::Sema::CheckConstraintSatisfaction() @ 0x5643b90d9f23 clang::Sema::CheckConceptTemplateId() @ 0x5643b9259656 clang::TreeTransform<>::TransformConceptSpecializationExpr() @ 0x5643b925ce00 clang::TreeTransform<>::TransformCXXFoldExpr() @ 0x5643b924b6e0 clang::Sema::SubstConstraintExpr() @ 0x5643b89f9097 calculateConstraintSatisfaction()::$_0::operator()() @ 0x5643b89f7f50 calculateConstraintSatisfaction<>() @ 0x5643b89f1bcf CheckConstraintSatisfaction() @ 0x5643b89f193e clang::Sema::CheckConstraintSatisfaction() @ 0x5643b9237c6d FinishTemplateArgumentDeduction<>() @ 0x5643b9236cd2 llvm::function_ref<>::callback_fn<>() @ 0x5643b888fa2f clang::Sema::runWithSufficientStackSpace() @ 0x5643b91c2e17 clang::Sema::DeduceTemplateArguments() @ 0x5643b9248e19 clang::Sema::InstantiateClassTemplateSpecialization() @ 0x5643b9334e73 llvm::function_ref<>::callback_fn<>() @ 0x5643b888fa2f clang::Sema::runWithSufficientStackSpace() @ 0x5643b931fdc4 clang::Sema::RequireCompleteTypeImpl() @ 0x5643b931f535 clang::Sema::RequireCompleteType() @ 0x5643b891bad7 clang::Sema::RequireCompleteDeclContext() @ 0x5643b90eda4d clang::Sema::CheckTypenameType() @ 0x5643b926edd2 clang::TreeTransform<>::TransformDependentNameType() @ 0x5643b9243d1c clang::TreeTransform<>::TransformType() @ 0x5643b92436ff clang::TreeTransform<>::TransformType() @ 0x5643b9244293 clang::Sema::SubstType() @ 0x5643b90d0e8a clang::Sema::CheckTemplateIdType() @ 0x5643b90d5015 clang::Sema::ActOnTemplateIdType() @ 0x5643b8674084 clang::Parser::AnnotateTemplateIdTokenAsType() @ 0x5643b86536cf clang::Parser::ParseDeclarationSpecifiers() @ 0x5643b864fffa clang::Parser::ParseSpecifierQualifierList() @ 0x5643b863da31 clang::Parser::ParseTypeName() @ 0x5643b86262bd clang::Parser::ParseAliasDeclarationAfterDeclarator() @ 0x5643b8624ea0 clang::Parser::ParseUsingDeclaration() @ 0x5643b8623e70 clang::Parser::ParseUsingDirectiveOrDeclaration() @ 0x5643b864b6ef clang::Parser::ParseDeclaration() @ 0x5643b868a9a4 clang::Parser::ParseStatementOrDeclarationAfterAttributes() @ 0x5643b8689d78 clang::Parser::ParseStatementOrDeclaration() @ 0x5643b8693bc0 clang::Parser::ParseCompoundStatementBody() @ 0x5643b8694bce clang::Parser::ParseFunctionStatementBody() @ 0x5643b85da8ad clang::Parser::ParseFunctionDefinition() @ 0x5643b864df89 clang::Parser::ParseDeclGroup() @ 0x5643b85d8ec9 clang::Parser::ParseDeclOrFunctionDefInternal() @ 0x5643b85d868e clang::Parser::ParseDeclarationOrFunctionDefinition() @ 0x5643b85d7434 clang::Parser::ParseExternalDeclaration() @ 0x5643b8622693 clang::Parser::ParseInnerNamespace() @ 0x5643b8621893 clang::Parser::ParseNamespace() @ 0x5643b864b7de clang::Parser::ParseDeclaration() @ 0x5643b85d6fb6 clang::Parser::ParseExternalDeclaration() @ 0x5643b85d516b clang::Parser::ParseTopLevelDecl() @ 0x5643b85ceebe clang::ParseAST() @ 0x5643b831a4c3 clang::FrontendAction::Execute() @ 0x5643b8294efd clang::CompilerInstance::ExecuteAction() @ 0x5643b717f84e clang::ExecuteCompilerInvocation() @ 0x5643b71737c6 cc1_main() @ 0x5643b7171066 ExecuteCC1Tool() @ 0x5643b843fe3e llvm::function_ref<>::callback_fn<>() @ 0x5643bcc44415 llvm::CrashRecoveryContext::RunSafely() @ 0x5643b843f5bb clang::driver::CC1Command::Execute() @ 0x5643b8400494 clang::driver::Compilation::ExecuteCommand() @ 0x5643b84007af clang::driver::Compilation::ExecuteJobs() @ 0x5643b841ea80 clang::driver::Driver::ExecuteCompilation() @ 0x5643b717061b clang_main() @ 0x5643b716d834 main ```
I'll try to figure out what's wrong with the original code. https://github.com/llvm/llvm-project/pull/83997 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits