aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Whitcroft <apw@canonical.com>2010-10-26 17:23:13 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-26 19:52:20 -0400
commit9446ef569c288e683225fec8337a0b2b81e75cc5 (patch)
treea46d6265a77f637f882c9136c914483b5d4598d8
parentfb2d2c1b5825503d30fb6f2dc328dbe4a47d9794 (diff)
checkpatch: handle casts better fixing false categorisation of : as binary
The following incantation is triggering categorisation of its colon (:) as a binary form, which it is not: return foo ? (s8)bar : baz; Handle casts differently from types in the categoriser, allowing us to better track (s8)bar as a value and not a declaration. Reported-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andy Whitcroft <apw@canonical.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rwxr-xr-xscripts/checkpatch.pl5
1 files changed, 5 insertions, 0 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 8d010ac0efe1..3cec2990d51e 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -845,6 +845,11 @@ sub annotate_values {
845 $av_preprocessor = 0; 845 $av_preprocessor = 0;
846 } 846 }
847 847
848 } elsif ($cur =~ /^(\(\s*$Type\s*)\)/) {
849 print "CAST($1)\n" if ($dbg_values > 1);
850 push(@av_paren_type, $type);
851 $type = 'C';
852
848 } elsif ($cur =~ /^($Type)\s*(?:$Ident|,|\)|\(|\s*$)/) { 853 } elsif ($cur =~ /^($Type)\s*(?:$Ident|,|\)|\(|\s*$)/) {
849 print "DECLARE($1)\n" if ($dbg_values > 1); 854 print "DECLARE($1)\n" if ($dbg_values > 1);
850 $type = 'T'; 855 $type = 'T';