Skip to content

Commit f98c9a9

Browse files
authored
[mutation analyzer][NFC] combine ConditionalOperator BinaryConditionalOperator (#118602)
1 parent 740ac4f commit f98c9a9

File tree

1 file changed

+8
-21
lines changed

1 file changed

+8
-21
lines changed

clang/lib/Analysis/ExprMutationAnalyzer.cpp

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -55,34 +55,21 @@ static bool canExprResolveTo(const Expr *Source, const Expr *Target) {
5555
// This is matched by `IgnoreDerivedToBase(canResolveToExpr(InnerMatcher))`
5656
// below.
5757
const auto ConditionalOperatorM = [Target](const Expr *E) {
58-
if (const auto *OP = dyn_cast<ConditionalOperator>(E)) {
59-
if (const auto *TE = OP->getTrueExpr()->IgnoreParens())
60-
if (canExprResolveTo(TE, Target))
61-
return true;
62-
if (const auto *FE = OP->getFalseExpr()->IgnoreParens())
63-
if (canExprResolveTo(FE, Target))
64-
return true;
65-
}
66-
return false;
67-
};
68-
69-
const auto ElvisOperator = [Target](const Expr *E) {
70-
if (const auto *OP = dyn_cast<BinaryConditionalOperator>(E)) {
71-
if (const auto *TE = OP->getTrueExpr()->IgnoreParens())
72-
if (canExprResolveTo(TE, Target))
73-
return true;
74-
if (const auto *FE = OP->getFalseExpr()->IgnoreParens())
75-
if (canExprResolveTo(FE, Target))
76-
return true;
58+
if (const auto *CO = dyn_cast<AbstractConditionalOperator>(E)) {
59+
const auto *TE = CO->getTrueExpr()->IgnoreParens();
60+
if (TE && canExprResolveTo(TE, Target))
61+
return true;
62+
const auto *FE = CO->getFalseExpr()->IgnoreParens();
63+
if (FE && canExprResolveTo(FE, Target))
64+
return true;
7765
}
7866
return false;
7967
};
8068

8169
const Expr *SourceExprP = Source->IgnoreParens();
8270
return IgnoreDerivedToBase(SourceExprP,
8371
[&](const Expr *E) {
84-
return E == Target || ConditionalOperatorM(E) ||
85-
ElvisOperator(E);
72+
return E == Target || ConditionalOperatorM(E);
8673
}) ||
8774
EvalCommaExpr(SourceExprP, [&](const Expr *E) {
8875
return IgnoreDerivedToBase(

0 commit comments

Comments
 (0)