Commit 74048ed8 authored by Andy Whitcroft's avatar Andy Whitcroft Committed by Linus Torvalds

checkpatch: variants -- move the main unary/binary operators to use variants

Now that we have a variants system, move to using that to carry the
unary/binary designation for +, -, &, and *.
Signed-off-by: default avatarAndy Whitcroft <apw@shadowen.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 1f65f947
...@@ -858,6 +858,19 @@ sub annotate_values { ...@@ -858,6 +858,19 @@ sub annotate_values {
print "CLOSE($1)\n" if ($dbg_values > 1); print "CLOSE($1)\n" if ($dbg_values > 1);
$type = 'N'; $type = 'N';
} elsif ($cur =~ /^(-(?![->])|\+(?!\+)|\*|\&(?!\&))/o) {
my $variant;
print "OPV($1)\n" if ($dbg_values > 1);
if ($type eq 'V') {
$variant = 'B';
} else {
$variant = 'U';
}
substr($var, length($res), 1, $variant);
$type = 'N';
} elsif ($cur =~ /^($Operators)/o) { } elsif ($cur =~ /^($Operators)/o) {
print "OP($1)\n" if ($dbg_values > 1); print "OP($1)\n" if ($dbg_values > 1);
if ($1 ne '++' && $1 ne '--') { if ($1 ne '++' && $1 ne '--') {
...@@ -1573,22 +1586,8 @@ sub process { ...@@ -1573,22 +1586,8 @@ sub process {
my $ptr = substr($blank, 0, $off) . "^"; my $ptr = substr($blank, 0, $off) . "^";
my $hereptr = "$hereline$ptr\n"; my $hereptr = "$hereline$ptr\n";
# Classify operators into binary, unary, or # Pull out the value of this operator.
# definitions (* only) where they have more
# than one mode.
my $op_type = substr($curr_values, $off + 1, 1); my $op_type = substr($curr_values, $off + 1, 1);
my $op_left = substr($curr_values, $off, 1);
my $is_unary;
if ($op_type eq 'T') {
$is_unary = 2;
} elsif ($op_left eq 'V') {
$is_unary = 0;
} else {
$is_unary = 1;
}
#if ($op eq '-' || $op eq '&' || $op eq '*') {
# print "UNARY: <$op_left$op_type $is_unary $a:$op:$c> <$ca:$op:$cc> <$unary_ctx>\n";
#}
# Get the full operator variant. # Get the full operator variant.
my $opv = $op . substr($curr_vars, $off, 1); my $opv = $op . substr($curr_vars, $off, 1);
...@@ -1625,18 +1624,19 @@ sub process { ...@@ -1625,18 +1624,19 @@ sub process {
} }
# '*' as part of a type definition -- reported already. # '*' as part of a type definition -- reported already.
} elsif ($op eq '*' && $is_unary == 2) { } elsif ($opv eq '*_') {
#warn "'*' is part of type\n"; #warn "'*' is part of type\n";
# unary operators should have a space before and # unary operators should have a space before and
# none after. May be left adjacent to another # none after. May be left adjacent to another
# unary operator, or a cast # unary operator, or a cast
} elsif ($op eq '!' || $op eq '~' || } elsif ($op eq '!' || $op eq '~' ||
($is_unary && ($op eq '*' || $op eq '-' || $op eq '&'))) { $opv eq '*U' || $opv eq '-U' ||
$opv eq '&U') {
if ($ctx !~ /[WEBC]x./ && $ca !~ /(?:\)|!|~|\*|-|\&|\||\+\+|\-\-|\{)$/) { if ($ctx !~ /[WEBC]x./ && $ca !~ /(?:\)|!|~|\*|-|\&|\||\+\+|\-\-|\{)$/) {
ERROR("space required before that '$op' $at\n" . $hereptr); ERROR("space required before that '$op' $at\n" . $hereptr);
} }
if ($op eq '*' && $cc =~/\s*const\b/) { if ($op eq '*' && $cc =~/\s*const\b/) {
# A unary '*' may be const # A unary '*' may be const
} elsif ($ctx =~ /.xW/) { } elsif ($ctx =~ /.xW/) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment