[clang] [Clang] add -Wshift-bool warning to handle shifting of bool (PR #127336)

Oleksandr T. via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 18 04:49:52 PST 2025


================
@@ -11246,6 +11246,12 @@ static void DiagnoseBadShiftValues(Sema& S, ExprResult &LHS, ExprResult &RHS,
   if (S.getLangOpts().OpenCL)
     return;
 
+  if (LHS.get()->IgnoreParenImpCasts()->getType()->isBooleanType()) {
+    S.Diag(Loc, diag::warn_shift_bool)
+        << (Opc == BO_Shr) /*left|right*/ << LHS.get()->getSourceRange();
----------------
a-tarasyuk wrote:

Thanks. I agree that it’s important to discuss the `right shift` behavior before moving forward with these changes. If we decide to remove the right shift, I’ll update the PR.

https://github.com/llvm/llvm-project/pull/127336


More information about the cfe-commits mailing list