Commit 320de9f89f for qemu.org

commit 320de9f89fbae08027ec0479b338cfc612e24c04
Author: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Date:   Mon Jun 15 12:35:23 2026 -0700

    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<TbData*>(udata);
                          ^

    ERROR: spaces required around that '*' (ctx:VxO)
    +                auto &[counter, p] = *static_cast<TbData*>(udata);
                                                             ^

    ERROR: spaces required around that '>>' (ctx:VxW)
    +        std::vector<std::pair<Vaddr, uint64_t>> v;                                              ^

    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
    Link: https://lore.kernel.org/qemu-devel/20260615193526.2883349-25-pierrick.bouvier@oss.qualcomm.com
    Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>

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<T*>
+						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<pair<A, B>>
+						if ($op eq '>>') {
+							$ok = 1;
+						}
 					}

 					# Ignore email addresses <foo@bar>