diff options
Diffstat (limited to 'scripts/checkpatch.pl')
| -rwxr-xr-x | scripts/checkpatch.pl | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 95cda3ecc66b..0bb68e7ff173 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -5753,18 +5753,25 @@ sub process {  		        for (my $count = $linenr; $count <= $lc; $count++) {  				my $fmt = get_quoted_string($lines[$count - 1], raw_line($count, 0));  				$fmt =~ s/%%//g; -				if ($fmt =~ /(\%[\*\d\.]*p(?![\WFfSsBKRraEhMmIiUDdgVCbGNO]).)/) { +				if ($fmt =~ /(\%[\*\d\.]*p(?![\WSsBKRraEhMmIiUDdgVCbGNO]).)/) {  					$bad_extension = $1;  					last;  				}  			}  			if ($bad_extension ne "") {  				my $stat_real = raw_line($linenr, 0); +				my $ext_type = "Invalid"; +				my $use = "";  				for (my $count = $linenr + 1; $count <= $lc; $count++) {  					$stat_real = $stat_real . "\n" . raw_line($count, 0);  				} +				if ($bad_extension =~ /p[Ff]/) { +					$ext_type = "Deprecated"; +					$use = " - use %pS instead"; +					$use =~ s/pS/ps/ if ($bad_extension =~ /pf/); +				}  				WARN("VSPRINTF_POINTER_EXTENSION", -				     "Invalid vsprintf pointer extension '$bad_extension'\n" . "$here\n$stat_real\n"); +				     "$ext_type vsprintf pointer extension '$bad_extension'$use\n" . "$here\n$stat_real\n");  			}  		} | 
