|
@@ -230,11 +230,15 @@ our $Inline = qr{inline|__always_inline|noinline};
|
|
|
our $Member = qr{->$Ident|\.$Ident|\[[^]]*\]};
|
|
|
our $Lval = qr{$Ident(?:$Member)*};
|
|
|
|
|
|
+our $Int_type = qr{(?i)llu|ull|ll|lu|ul|l|u};
|
|
|
+our $Binary = qr{(?i)0b[01]+$Int_type?};
|
|
|
+our $Hex = qr{(?i)0x[0-9a-f]+$Int_type?};
|
|
|
+our $Int = qr{[0-9]+$Int_type?};
|
|
|
our $Float_hex = qr{(?i)0x[0-9a-f]+p-?[0-9]+[fl]?};
|
|
|
our $Float_dec = qr{(?i)(?:[0-9]+\.[0-9]*|[0-9]*\.[0-9]+)(?:e-?[0-9]+)?[fl]?};
|
|
|
our $Float_int = qr{(?i)[0-9]+e-?[0-9]+[fl]?};
|
|
|
our $Float = qr{$Float_hex|$Float_dec|$Float_int};
|
|
|
-our $Constant = qr{$Float|(?i)(?:0x[0-9a-f]+|[0-9]+)[ul]*};
|
|
|
+our $Constant = qr{$Float|$Binary|$Hex|$Int};
|
|
|
our $Assignment = qr{\*\=|/=|%=|\+=|-=|<<=|>>=|&=|\^=|\|=|=};
|
|
|
our $Compare = qr{<=|>=|==|!=|<|>};
|
|
|
our $Operators = qr{
|
|
@@ -2934,9 +2938,17 @@ sub process {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#CamelCase
|
|
|
+#Specific variable tests
|
|
|
while ($line =~ m{($Constant|$Lval)}g) {
|
|
|
my $var = $1;
|
|
|
+
|
|
|
+#gcc binary extension
|
|
|
+ if ($var =~ /^$Binary$/) {
|
|
|
+ WARN("GCC_BINARY_CONSTANT",
|
|
|
+ "Avoid gcc v4.3+ binary constant extension: <$var>\n" . $herecurr);
|
|
|
+ }
|
|
|
+
|
|
|
+#CamelCase
|
|
|
if ($var !~ /$Constant/ &&
|
|
|
$var =~ /[A-Z][a-z]|[a-z][A-Z]/ &&
|
|
|
$var !~ /"^(?:Clear|Set|TestClear|TestSet|)Page[A-Z]/ &&
|