|
@@ -281,7 +281,7 @@ our $Attribute = qr{
|
|
|
__weak
|
|
|
}x;
|
|
|
our $Modifier;
|
|
|
-our $Inline = qr{inline|__always_inline|noinline};
|
|
|
+our $Inline = qr{inline|__always_inline|noinline|__inline|__inline__};
|
|
|
our $Member = qr{->$Ident|\.$Ident|\[[^]]*\]};
|
|
|
our $Lval = qr{$Ident(?:$Member)*};
|
|
|
|
|
@@ -304,6 +304,8 @@ our $Operators = qr{
|
|
|
&&|\|\||,|\^|\+\+|--|&|\||$Arithmetic
|
|
|
}x;
|
|
|
|
|
|
+our $c90_Keywords = qr{do|for|while|if|else|return|goto|continue|switch|default|case|break}x;
|
|
|
+
|
|
|
our $NonptrType;
|
|
|
our $NonptrTypeWithAttr;
|
|
|
our $Type;
|
|
@@ -429,7 +431,7 @@ sub build_types {
|
|
|
(?:(?:\s|\*|\[\])+\s*const|(?:\s|\*|\[\])+|(?:\s*\[\s*\])+)?
|
|
|
(?:\s+$Inline|\s+$Modifier)*
|
|
|
}x;
|
|
|
- $Declare = qr{(?:$Storage\s+)?$Type};
|
|
|
+ $Declare = qr{(?:$Storage\s+(?:$Inline\s+)?)?$Type};
|
|
|
}
|
|
|
build_types();
|
|
|
|
|
@@ -1607,7 +1609,7 @@ sub pos_last_openparen {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return $last_openparen + 1;
|
|
|
+ return length(expand_tabs(substr($line, 0, $last_openparen))) + 1;
|
|
|
}
|
|
|
|
|
|
sub process {
|
|
@@ -2200,7 +2202,7 @@ sub process {
|
|
|
|
|
|
# check multi-line statement indentation matches previous line
|
|
|
if ($^V && $^V ge 5.10.0 &&
|
|
|
- $prevline =~ /^\+(\t*)(if \(|$Ident\().*(\&\&|\|\||,)\s*$/) {
|
|
|
+ $prevline =~ /^\+([ \t]*)((?:$c90_Keywords(?:\s+if)\s*)|(?:$Declare\s*)?(?:$Ident|\(\s*\*\s*$Ident\s*\))\s*|$Ident\s*=\s*$Ident\s*)\(.*(\&\&|\|\||,)\s*$/) {
|
|
|
$prevline =~ /^\+(\t*)(.*)$/;
|
|
|
my $oldindent = $1;
|
|
|
my $rest = $2;
|