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

Mariya Podchishchaeva via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 18 02:38:51 PST 2025


================
@@ -7115,6 +7115,9 @@ def warn_shift_result_sets_sign_bit : Warning<
   "signed shift result (%0) sets the sign bit of the shift expression's "
   "type (%1) and becomes negative">,
   InGroup<DiagGroup<"shift-sign-overflow">>, DefaultIgnore;
+def warn_shift_bool : Warning<
+  "%select{left|right}0 shifting a `bool` implicitly converts it to 'int'">,
----------------
Fznamznon wrote:

I wonder if we should also suggest to change the shift to `b & !x` for right shifts?

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


More information about the cfe-commits mailing list