================ @@ -7518,6 +7523,154 @@ static Attr *getCCTypeAttr(ASTContext &Ctx, ParsedAttr &Attr) { llvm_unreachable("unexpected attribute kind!"); } +std::optional<FunctionEffectMode> +Sema::ActOnEffectExpression(Expr *CondExpr, StringRef AttributeName) { + auto BadExpr = [&]() { + Diag(CondExpr->getExprLoc(), diag::err_attribute_argument_type) + << ("'" + AttributeName.str() + "'") << AANT_ArgumentIntegerConstant + << CondExpr->getSourceRange(); + return std::nullopt; + }; + + if (CondExpr->isTypeDependent() || CondExpr->isValueDependent()) { + if (CondExpr->containsUnexpandedParameterPack()) + return BadExpr(); + return FunctionEffectMode::Dependent; + } ---------------- Sirraide wrote:
See #93269 https://github.com/llvm/llvm-project/pull/84983 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits