================
@@ -1510,7 +1510,7 @@ static void CheckFoldOperand(Sema &S, Expr *E) {
E = E->IgnoreImpCasts();
auto *OCE = dyn_cast<CXXOperatorCallExpr>(E);
if ((OCE && OCE->isInfixBinaryOp()) || isa<BinaryOperator>(E) ||
- isa<AbstractConditionalOperator>(E)) {
+ isa<AbstractConditionalOperator>(E) || isa<RecoveryExpr>(E)) {
----------------
Sirraide wrote:
> IIUC the frontend produces a RecoveryExpr on semantic errors that prevent
> forming well formed statements. In that case should it be always generated in
> case of semantic errors? Can you point an example where it is not always
> generated.
`RecoveryExpr`s are only created if they’re enabled by some flag
(`-frecovery-ast` iirc), otherwise, you just get `ExprError()`:
https://github.com/llvm/llvm-project/blob/f42e58f61680e325555f382cab5115c54df6f6df/clang/lib/Sema/SemaExpr.cpp#L21591-L21594
https://github.com/llvm/llvm-project/pull/164019
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits