From: Pierrick Bouvier Date: Mon, 15 Jun 2026 19:35:23 +0000 (-0700) Subject: scripts/checkpatch: ignore spaces required around some operators in C++ X-Git-Tag: v11.1.0-rc0~58^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=320de9f89fbae08027ec0479b338cfc612e24c04;p=thirdparty%2Fqemu.git scripts/checkpatch: ignore spaces required around some operators in C++ C++ has a different style when it comes to space around references, dereferences, so don't report it. Also, closing templates with >> gets wrongly confused with >> operator, so just relax this check. Some examples: ERROR: spaces required around that '&' (ctx:WxV) + auto &[counter, p] = *static_cast(udata); ^ ERROR: spaces required around that '*' (ctx:VxO) + auto &[counter, p] = *static_cast(udata); ^ ERROR: spaces required around that '>>' (ctx:VxW) + std::vector> v; ^ Reviewed-by: Peter Maydell Reviewed-by: Manos Pitsidianakis Link: https://lore.kernel.org/qemu-devel/20260615193526.2883349-25-pierrick.bouvier@oss.qualcomm.com Signed-off-by: Pierrick Bouvier --- diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 2189db19f5..538e059e26 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2621,6 +2621,31 @@ sub process { if ($op eq '::') { $ok = 1; } + + # Ignore * in C++: templates and + # pointer types are incorrectly + # flagged. Example: + # static_cast + if ($op eq '*') { + $ok = 1; + } + + # Ignore & in C++: & means a + # reference, and this create + # issues with some constructions. + # Example: + # auto &[first, second] = pair; + if ($op eq '&') { + $ok = 1; + } + + # Ignore >> in C++ + # checkpatch is confused by + # >> closing templates. Example: + # vector> + if ($op eq '>>') { + $ok = 1; + } } # Ignore email addresses