mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-02 21:06:52 +02:00
7be5d8df1f
We've had a mixture of the warnings pragma, the -w switch on the shebang line, and no warnings at all. This patch removes the -w swicth and add the warnings pragma to all perl sources missing it. It raises the severity of the TestingAndDebugging::RequireUseWarnings perlcritic policy to level 5, so that we catch any future violations. Discussion: https://postgr.es/m/20200412074245.GB623763@rfd.leadboat.com
67 lines
1.8 KiB
Perl
67 lines
1.8 KiB
Perl
#!/usr/bin/perl
|
|
#----------------------------------------------------------------------
|
|
#
|
|
# fix-old-flex-code.pl
|
|
#
|
|
# flex versions before 2.5.36, with certain option combinations, produce
|
|
# code that causes an "unused variable" warning. That's annoying, so
|
|
# let's suppress it by inserting a dummy reference to the variable.
|
|
# (That's exactly what 2.5.36 and later do ...)
|
|
#
|
|
# Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
# Portions Copyright (c) 1994, Regents of the University of California
|
|
#
|
|
# src/tools/fix-old-flex-code.pl
|
|
#
|
|
#----------------------------------------------------------------------
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
# Get command line argument.
|
|
usage() if $#ARGV != 0;
|
|
my $filename = shift;
|
|
|
|
# Suck in the whole file.
|
|
local $/ = undef;
|
|
my $cfile;
|
|
open($cfile, '<', $filename) || die "opening $filename for reading: $!";
|
|
my $ccode = <$cfile>;
|
|
close($cfile);
|
|
|
|
# No need to do anything if it's not flex 2.5.x for x < 36.
|
|
exit 0 if $ccode !~ m/^#define YY_FLEX_MAJOR_VERSION 2$/m;
|
|
exit 0 if $ccode !~ m/^#define YY_FLEX_MINOR_VERSION 5$/m;
|
|
exit 0 if $ccode !~ m/^#define YY_FLEX_SUBMINOR_VERSION (\d+)$/m;
|
|
exit 0 if $1 >= 36;
|
|
|
|
# Apply the desired patch.
|
|
$ccode =~
|
|
s|(struct yyguts_t \* yyg = \(struct yyguts_t\*\)yyscanner; /\* This var may be unused depending upon options. \*/
|
|
.*?)
|
|
return yy_is_jam \? 0 : yy_current_state;
|
|
|$1
|
|
(void) yyg;
|
|
return yy_is_jam ? 0 : yy_current_state;
|
|
|s;
|
|
|
|
# Write the modified file back out.
|
|
open($cfile, '>', $filename) || die "opening $filename for writing: $!";
|
|
print $cfile $ccode;
|
|
close($cfile);
|
|
|
|
exit 0;
|
|
|
|
|
|
sub usage
|
|
{
|
|
die <<EOM;
|
|
Usage: fix-old-flex-code.pl c-file-name
|
|
|
|
fix-old-flex-code.pl modifies a flex output file to suppress
|
|
an unused-variable warning that occurs with older flex versions.
|
|
|
|
Report bugs to <pgsql-bugs\@lists.postgresql.org>.
|
|
EOM
|
|
}
|