Skip to content

Commit e44a14e

Browse files
authored
Revert "[clang-tidy] fix bugprone-narrowing-conversions false positive for conditional expression" (#151859)
Reverts #139474 due to lit test failures on `arm` platforms.
1 parent 2579ffc commit e44a14e

File tree

5 files changed

+4
-59
lines changed

5 files changed

+4
-59
lines changed

clang-tools-extra/clang-tidy/bugprone/NarrowingConversionsCheck.cpp

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -555,22 +555,15 @@ bool NarrowingConversionsCheck::handleConditionalOperator(
555555
// We have an expression like so: `output = cond ? lhs : rhs`
556556
// From the point of view of narrowing conversion we treat it as two
557557
// expressions `output = lhs` and `output = rhs`.
558-
handleConditionalOperatorArgument(Context, Lhs, CO->getLHS());
559-
handleConditionalOperatorArgument(Context, Lhs, CO->getRHS());
558+
handleBinaryOperator(Context, CO->getLHS()->getExprLoc(), Lhs,
559+
*CO->getLHS());
560+
handleBinaryOperator(Context, CO->getRHS()->getExprLoc(), Lhs,
561+
*CO->getRHS());
560562
return true;
561563
}
562564
return false;
563565
}
564566

565-
void NarrowingConversionsCheck::handleConditionalOperatorArgument(
566-
const ASTContext &Context, const Expr &Lhs, const Expr *Arg) {
567-
if (const auto *ICE = llvm::dyn_cast<ImplicitCastExpr>(Arg))
568-
if (!Arg->getIntegerConstantExpr(Context))
569-
Arg = ICE->getSubExpr();
570-
571-
handleBinaryOperator(Context, Arg->getExprLoc(), Lhs, *Arg);
572-
}
573-
574567
void NarrowingConversionsCheck::handleImplicitCast(
575568
const ASTContext &Context, const ImplicitCastExpr &Cast) {
576569
if (Cast.getExprLoc().isMacroID())

clang-tools-extra/clang-tidy/bugprone/NarrowingConversionsCheck.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,6 @@ class NarrowingConversionsCheck : public ClangTidyCheck {
8585
bool handleConditionalOperator(const ASTContext &Context, const Expr &Lhs,
8686
const Expr &Rhs);
8787

88-
void handleConditionalOperatorArgument(const ASTContext &Context,
89-
const Expr &Lhs, const Expr *Arg);
9088
void handleImplicitCast(const ASTContext &Context,
9189
const ImplicitCastExpr &Cast);
9290

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,6 @@ Changes in existing checks
134134
<clang-tidy/checks/bugprone/infinite-loop>` check by adding detection for
135135
variables introduced by structured bindings.
136136

137-
- Improved :doc:`bugprone-narrowing-conversions
138-
<clang-tidy/checks/bugprone/narrowing-conversions>` check by fixing
139-
false positive from analysis of a conditional expression in C.
140-
141137
- Improved :doc:`bugprone-reserved-identifier
142138
<clang-tidy/checks/bugprone/reserved-identifier>` check by ignoring
143139
declarations in system headers.

clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-conditional-expressions.c

Lines changed: 0 additions & 21 deletions
This file was deleted.

clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-conditional-expressions.cpp

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)