On Fri, Mar 12, 2021 at 2:52 PM <[email protected]> wrote: > > On 2021.03.12. 20:36 Robert Haas <[email protected]> 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
