pgsql: Try to fix compiler warnings.

Started by Robert Haasover 5 years ago5 messagescomitters
Jump to latest
#1Robert Haas
robertmhaas@gmail.com

Try to fix compiler warnings.

Per report from Peter Geoghegan.

Discussion: /messages/by-id/CAH2-WznpwULZ3uJ1_6WXvNMXYbOy8k8tYs3r=qSdGmZeRd6tDw@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d60e61de4fb4a8e7ca88204c2c409e7380887d76

Modified Files
--------------
src/bin/pg_amcheck/pg_amcheck.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

#2Erik Rijkers
er@xs4all.nl
In reply to: Robert Haas (#1)
Re: pgsql: Try to fix compiler warnings.

On 2021.03.12. 20:36 Robert Haas <rhaas@postgresql.org> wrote:

Try to fix compiler warnings.

Per report from Peter Geoghegan.

I had the same errors Peter reported. gcc 10.2 on debian.

The compile stops with:

In file included from ../../../src/include/postgres_fe.h:25,
from pg_amcheck.c:13:
pg_amcheck.c: In function ‘compile_relation_list_one_db’:
../../../src/include/c.h:118:31: error: expected ‘,’ or ‘;’ before ‘__attribute__’
118 | #define pg_attribute_unused() __attribute__((unused))
| ^~~~~~~~~~~~~
../../../src/include/c.h:155:34: note: in expansion of macro ‘pg_attribute_unused’
155 | #define PG_USED_FOR_ASSERTS_ONLY pg_attribute_unused()
| ^~~~~~~~~~~~~~~~~~~
pg_amcheck.c:2061:26: note: in expansion of macro ‘PG_USED_FOR_ASSERTS_ONLY’
2061 | bool is_btree = false PG_USED_FOR_ASSERTS_ONLY;
| ^~~~~~~~~~~~~~~~~~~~~~~~
pg_amcheck.c:2061:9: warning: variable ‘is_btree’ set but not used [-Wunused-but-set-variable]
2061 | bool is_btree = false PG_USED_FOR_ASSERTS_ONLY;
| ^~~~~~~~
make[3]: *** [pg_amcheck.o] Error 1
make[2]: *** [all-pg_amcheck-recurse] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-bin-recurse] Error 2
make: *** [all-src-recurse] Error 2
../../../src/Makefile.global:919: recipe for target 'pg_amcheck.o' failed
Makefile:43: recipe for target 'all-pg_amcheck-recurse' failed
Makefile:42: recipe for target 'all-bin-recurse' failed
GNUmakefile:11: recipe for target 'all-src-recurse' failed

Show quoted text

Discussion: /messages/by-id/CAH2-WznpwULZ3uJ1_6WXvNMXYbOy8k8tYs3r=qSdGmZeRd6tDw@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d60e61de4fb4a8e7ca88204c2c409e7380887d76

Modified Files
--------------
src/bin/pg_amcheck/pg_amcheck.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

#3Robert Haas
robertmhaas@gmail.com
In reply to: Erik Rijkers (#2)
Re: pgsql: Try to fix compiler warnings.

On Fri, Mar 12, 2021 at 2:52 PM <er@xs4all.nl> wrote:

On 2021.03.12. 20:36 Robert Haas <rhaas@postgresql.org> wrote:
Try to fix compiler warnings.

Per report from Peter Geoghegan.

I had the same errors Peter reported. gcc 10.2 on debian.

The compile stops with:

In file included from ../../../src/include/postgres_fe.h:25,
from pg_amcheck.c:13:
pg_amcheck.c: In function ‘compile_relation_list_one_db’:
../../../src/include/c.h:118:31: error: expected ‘,’ or ‘;’ before ‘__attribute__’
118 | #define pg_attribute_unused() __attribute__((unused))
| ^~~~~~~~~~~~~
../../../src/include/c.h:155:34: note: in expansion of macro ‘pg_attribute_unused’
155 | #define PG_USED_FOR_ASSERTS_ONLY pg_attribute_unused()
| ^~~~~~~~~~~~~~~~~~~
pg_amcheck.c:2061:26: note: in expansion of macro ‘PG_USED_FOR_ASSERTS_ONLY’
2061 | bool is_btree = false PG_USED_FOR_ASSERTS_ONLY;
| ^~~~~~~~~~~~~~~~~~~~~~~~
pg_amcheck.c:2061:9: warning: variable ‘is_btree’ set but not used [-Wunused-but-set-variable]
2061 | bool is_btree = false PG_USED_FOR_ASSERTS_ONLY;
| ^~~~~~~~
make[3]: *** [pg_amcheck.o] Error 1
make[2]: *** [all-pg_amcheck-recurse] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-bin-recurse] Error 2
make: *** [all-src-recurse] Error 2
../../../src/Makefile.global:919: recipe for target 'pg_amcheck.o' failed
Makefile:43: recipe for target 'all-pg_amcheck-recurse' failed
Makefile:42: recipe for target 'all-bin-recurse' failed
GNUmakefile:11: recipe for target 'all-src-recurse' failed

Well, that's not quite the same. The warning about mixing declarations
and code is gone, which is good, but the error about
PG_USED_FOR_ASSERTS_ONLY is clearly bad. I am a bit confused, though
... or I was until I realized that I put PG_USED_FOR_ASSERTS_ONLY
after the initializer whereas existing occurrences are before the
initializer. I just committed something to move that; hopefully that
fixes it for you.

--
Robert Haas
EDB: http://www.enterprisedb.com

#4Erik Rijkers
er@xs4all.nl
In reply to: Robert Haas (#3)
Re: pgsql: Try to fix compiler warnings.

On 2021.03.12. 21:06 Robert Haas <robertmhaas@gmail.com> wrote:
On Fri, Mar 12, 2021 at 2:52 PM <er@xs4all.nl> wrote:

On 2021.03.12. 20:36 Robert Haas <rhaas@postgresql.org> wrote:

../../../src/Makefile.global:919: recipe for target 'pg_amcheck.o' failed
Makefile:43: recipe for target 'all-pg_amcheck-recurse' failed
Makefile:42: recipe for target 'all-bin-recurse' failed
GNUmakefile:11: recipe for target 'all-src-recurse' failed

Well, that's not quite the same. The warning about mixing declarations

Sorry, I could have been clearer; I meant that /earlier/ I had the same error that Peter reported.

Now compile is OK again, no errors, no warnings. Thanks.

Erik

#5Robert Haas
robertmhaas@gmail.com
In reply to: Erik Rijkers (#4)
Re: pgsql: Try to fix compiler warnings.

On Fri, Mar 12, 2021 at 3:18 PM Erik Rijkers <er@xs4all.nl> wrote:

Now compile is OK again, no errors, no warnings. Thanks.

Cool, thanks for confirming.

--
Robert Haas
EDB: http://www.enterprisedb.com