mirror of https://github.com/postgres/postgres
This removes all the various workarounds for avoiding compiler warnings with Flex 2.5.35. Several recent patches have added additional warnings that would either need to be fixed along the lines of the existing workarounds, or we decide to no longer care about this, which we do here. Flex 2.5.35 is extremely outdated, and you can't even download it anymore from any of the Flex project sites, so it's nearly impossible to support. After this, using Flex 2.5.35 will still work, but the generated code will produce numerous compiler warnings. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/1a204ccd-7ae6-478c-a431-407b5c48ccc6@eisentraut.orgpull/198/head
parent
630f9a43ce
commit
6fdd5d9563
@ -1,66 +0,0 @@ |
||||
#!/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-2025, 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 FATAL => 'all'; |
||||
|
||||
# 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 |
||||
} |
Loading…
Reference in new issue