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


Reply via email to