On Fri, Jan 20, 2012 at 05:15:15AM -0800, Joe Perches wrote:
> @@ -2838,7 +2849,8 @@
> if ($dstat ne '' &&
> $dstat !~ /^(?:$Ident|-?$Constant),$/ &&
> # 10, // foo(),
> $dstat !~ /^(?:$Ident|-?$Constant);$/ &&
> # foo();
> - $dstat !~ /^(?:$Ident|-?$Constant)$/ &&
> # 10 // foo()
> + $dstat !~ /^[!~-]?(?:$Ident|$Constant)$/ &&
> # 10 // foo() // !foo // ~foo // -foo
> + $dstat !~ /^'X'$/ &&
> # character constants
> $dstat !~ /$exceptions/ &&
> $dstat !~ /^\.$Ident\s*=/ &&
> # .foo =
> $dstat !~
> /^do\s*$Constant\s*while\s*$Constant;?$/ && # do {...} while (...); //
> do {...} while (...)
>
> I think the character change test is fine but
> the !~- addition/change is suspect.
>
> !~- are precedence level 3 operators
Level 2?
> and can be impacted by things like ++
They work like you would expect:
#define NOT_FOO !foo
++NOT_FOO <-- compile error.
NOT_FOO++ <-- works.
Anyway if people are really writing macros which are used this way,
then that's something which is outside of the scope of checkpatch.pl
to fix.
regards,
dan carpenter
signature.asc
Description: Digital signature
_______________________________________________ devel mailing list [email protected] http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
