On Mon, 15 Jun 2026 at 20:39, Pierrick Bouvier <[email protected]> wrote: > > 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; > ^ > > Signed-off-by: Pierrick Bouvier <[email protected]> > --- > scripts/checkpatch.pl | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index 2189db19f54..538e059e265 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; > + } > }
Reviewed-by: Peter Maydell <[email protected]> thanks -- PMM
