GCC 6 warning fixes
Here are three patches to fix new warnings in GCC 6.
0001 is apparently a typo.
0002 was just (my?) stupid code to begin with.
0003 is more of a workaround. There could be other ways address this, too.
Attachments:
0001-ecpg-Fix-typo.patchapplication/x-patch; name=0001-ecpg-Fix-typo.patchDownload
From 1e5bf0bdcd86b807d881ea82245275389083ec75 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 19 Feb 2016 23:07:46 -0500
Subject: [PATCH 1/3] ecpg: Fix typo
GCC 6 points out the redundant conditions, which were apparently typos.
---
src/interfaces/ecpg/test/compat_informix/describe.pgc | 2 +-
src/interfaces/ecpg/test/expected/compat_informix-describe.c | 2 +-
src/interfaces/ecpg/test/expected/sql-describe.c | 2 +-
src/interfaces/ecpg/test/sql/describe.pgc | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/interfaces/ecpg/test/compat_informix/describe.pgc b/src/interfaces/ecpg/test/compat_informix/describe.pgc
index 1836ac3..6fcccc6 100644
--- a/src/interfaces/ecpg/test/compat_informix/describe.pgc
+++ b/src/interfaces/ecpg/test/compat_informix/describe.pgc
@@ -150,7 +150,7 @@ exec sql end declare section;
exec sql describe st_id2 using descriptor sqlda2;
exec sql describe st_id2 into sqlda3;
- if (sqlda1 == NULL || sqlda1 == NULL || sqlda2 == NULL)
+ if (sqlda1 == NULL || sqlda2 == NULL || sqlda3 == NULL)
exit(1);
strcpy(msg, "get descriptor");
diff --git a/src/interfaces/ecpg/test/expected/compat_informix-describe.c b/src/interfaces/ecpg/test/expected/compat_informix-describe.c
index 5951ae6..9eb176e 100644
--- a/src/interfaces/ecpg/test/expected/compat_informix-describe.c
+++ b/src/interfaces/ecpg/test/expected/compat_informix-describe.c
@@ -362,7 +362,7 @@ if (sqlca.sqlcode < 0) exit (1);}
#line 151 "describe.pgc"
- if (sqlda1 == NULL || sqlda1 == NULL || sqlda2 == NULL)
+ if (sqlda1 == NULL || sqlda2 == NULL || sqlda3 == NULL)
exit(1);
strcpy(msg, "get descriptor");
diff --git a/src/interfaces/ecpg/test/expected/sql-describe.c b/src/interfaces/ecpg/test/expected/sql-describe.c
index 356f587..d0e39e9 100644
--- a/src/interfaces/ecpg/test/expected/sql-describe.c
+++ b/src/interfaces/ecpg/test/expected/sql-describe.c
@@ -360,7 +360,7 @@ if (sqlca.sqlcode < 0) exit (1);}
#line 151 "describe.pgc"
- if (sqlda1 == NULL || sqlda1 == NULL || sqlda2 == NULL)
+ if (sqlda1 == NULL || sqlda2 == NULL || sqlda3 == NULL)
exit(1);
strcpy(msg, "get descriptor");
diff --git a/src/interfaces/ecpg/test/sql/describe.pgc b/src/interfaces/ecpg/test/sql/describe.pgc
index cd52c82..b95ab35 100644
--- a/src/interfaces/ecpg/test/sql/describe.pgc
+++ b/src/interfaces/ecpg/test/sql/describe.pgc
@@ -150,7 +150,7 @@ exec sql end declare section;
exec sql describe st_id2 using descriptor sqlda2;
exec sql describe st_id2 into sqlda3;
- if (sqlda1 == NULL || sqlda1 == NULL || sqlda2 == NULL)
+ if (sqlda1 == NULL || sqlda2 == NULL || sqlda3 == NULL)
exit(1);
strcpy(msg, "get descriptor");
--
2.7.1
0002-psql-Fix-some-strange-code-in-SQL-help-creation.patchapplication/x-patch; name=0002-psql-Fix-some-strange-code-in-SQL-help-creation.patchDownload
From 996a5d27a2bc79e1e0b2ee0aa39cfdc7615e874c Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 19 Feb 2016 23:07:46 -0500
Subject: [PATCH 2/3] psql: Fix some strange code in SQL help creation
Struct QL_HELP used to be defined as static in the sql_help.h header
file, which is included in sql_help.c and help.c, thus creating two
separate instances of the struct. This causes a warning from GCC 6,
because the struct is not used in sql_help.c.
Instead, declare the struct as extern in the header file and define it
in sql_help.c. This also allows making a bunch of functions static
because they are no longer needed outside of sql_help.c.
---
src/bin/psql/create_help.pl | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/bin/psql/create_help.pl b/src/bin/psql/create_help.pl
index fedcc47..b9b8e87 100644
--- a/src/bin/psql/create_help.pl
+++ b/src/bin/psql/create_help.pl
@@ -59,8 +59,6 @@
#ifndef $define
#define $define
-#define N_(x) (x) /* gettext noop */
-
#include \"postgres_fe.h\"
#include \"pqexpbuffer.h\"
@@ -72,6 +70,7 @@
int nl_count; /* number of newlines in syntax (for pager) */
};
+extern const struct _helpStruct QL_HELP[];
";
print CFILE "/*
@@ -83,6 +82,8 @@
*
*/
+#define N_(x) (x) /* gettext noop */
+
#include \"$hfile\"
";
@@ -170,8 +171,7 @@
$synopsis =~ s/\\n/\\n"\n$prefix"/g;
my @args =
("buf", $synopsis, map("_(\"$_\")", @{ $entries{$_}{params} }));
- print HFILE "extern void sql_help_$id(PQExpBuffer buf);\n";
- print CFILE "void
+ print CFILE "static void
sql_help_$id(PQExpBuffer buf)
{
\tappendPQExpBuffer(" . join(",\n$prefix", @args) . ");
@@ -180,15 +180,14 @@
";
}
-print HFILE "
-
-static const struct _helpStruct QL_HELP[] = {
+print CFILE "
+const struct _helpStruct QL_HELP[] = {
";
foreach (sort keys %entries)
{
my $id = $_;
$id =~ s/ /_/g;
- print HFILE " { \"$_\",
+ print CFILE " { \"$_\",
N_(\"$entries{$_}{cmddesc}\"),
sql_help_$id,
$entries{$_}{nl_count} },
@@ -196,11 +195,12 @@
";
}
-print HFILE "
+print CFILE "
{ NULL, NULL, NULL } /* End of list marker */
};
+";
-
+print HFILE "
#define QL_HELP_COUNT "
. scalar(keys %entries) . " /* number of help items */
#define QL_MAX_CMD_LEN $maxlen /* largest strlen(cmd) */
--
2.7.1
0003-Suppress-GCC-6-warning-about-self-comparison.patchapplication/x-patch; name=0003-Suppress-GCC-6-warning-about-self-comparison.patchDownload
From 5eb5b83ee33033e17bd4fdb174bdcae9bcc4be84 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 19 Feb 2016 23:07:46 -0500
Subject: [PATCH 3/3] Suppress GCC 6 warning about self-comparison
---
src/port/path.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/port/path.c b/src/port/path.c
index 5c9de0c..7bf7cbc 100644
--- a/src/port/path.c
+++ b/src/port/path.c
@@ -86,7 +86,11 @@ skip_drive(const char *path)
bool
has_drive_prefix(const char *path)
{
+#ifdef WIN32
return skip_drive(path) != path;
+#else
+ return false;
+#endif
}
/*
--
2.7.1
On Sat, Feb 20, 2016 at 5:14 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
Here are three patches to fix new warnings in GCC 6.
0001 is apparently a typo.
Right, looks like it. Builds and tests OK with this change (though I
didn't get any warning from GCC6.0.0 -Wall for this one).
0002 was just (my?) stupid code to begin with.
Right, it makes sense to define QL_HELP in just one translation unit
with external linkage. Builds and works fine. I got the 'defined but
not used' warning from GCC6 and it went away with this patch.
0003 is more of a workaround. There could be other ways address this, too.
This way seems fine to me (you probably want the function to continue
to exist rather than, say, becoming a macro evaluating to false on
non-WIN32, if this gets backpatched). I got this warning from GCC6
and it went away with this patch.
--
Thomas Munro
http://www.enterprisedb.com
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Mon, Feb 29, 2016 at 4:50 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:
On Sat, Feb 20, 2016 at 5:14 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
Here are three patches to fix new warnings in GCC 6.
0001 is apparently a typo.
Right, looks like it. Builds and tests OK with this change (though I
didn't get any warning from GCC6.0.0 -Wall for this one).0002 was just (my?) stupid code to begin with.
Right, it makes sense to define QL_HELP in just one translation unit
with external linkage. Builds and works fine. I got the 'defined but
not used' warning from GCC6 and it went away with this patch.0003 is more of a workaround. There could be other ways address this, too.
This way seems fine to me (you probably want the function to continue
to exist rather than, say, becoming a macro evaluating to false on
non-WIN32, if this gets backpatched). I got this warning from GCC6
and it went away with this patch.
Peter, are you going to commit this?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 3/8/16 4:44 PM, Robert Haas wrote:
On Mon, Feb 29, 2016 at 4:50 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:On Sat, Feb 20, 2016 at 5:14 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
Here are three patches to fix new warnings in GCC 6.
0001 is apparently a typo.
Right, looks like it. Builds and tests OK with this change (though I
didn't get any warning from GCC6.0.0 -Wall for this one).0002 was just (my?) stupid code to begin with.
Right, it makes sense to define QL_HELP in just one translation unit
with external linkage. Builds and works fine. I got the 'defined but
not used' warning from GCC6 and it went away with this patch.0003 is more of a workaround. There could be other ways address this, too.
This way seems fine to me (you probably want the function to continue
to exist rather than, say, becoming a macro evaluating to false on
non-WIN32, if this gets backpatched). I got this warning from GCC6
and it went away with this patch.Peter, are you going to commit this?
done
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers