From: | "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com> |
---|---|
To: | Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Fix compilation warnings when CFLAGS -Og is specified |
Date: | 2023-08-01 04:51:55 |
Message-ID: | TYAPR01MB586612D1E1A28A015CF5FFCDF50AA@TYAPR01MB5866.jpnprd01.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Dear hackers,
# Background
Based on [1], I did configure and build with options:
(I used Meson build system, but it could be reproduced by Autoconf/Make)
```
$ meson setup -Dcassert=true -Ddebug=true -Dc_args=-Og ../builder
$ cd ../builder
$ ninja
```
My gcc version is 4.8.5, and ninja is 1.10.2.
# Problem
I got warnings while compiling. I found that these were reported when -Og was specified.
All of raised said that the variable might be used without initialization.
```
[122/1910] Compiling C object src/backend/postgres_lib.a.p/libpq_be-fsstubs.c.o
../postgres/src/backend/libpq/be-fsstubs.c: In function ‘be_lo_export’:
../postgres/src/backend/libpq/be-fsstubs.c:537:24: warning: ‘fd’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (CloseTransientFile(fd) != 0)
^
[390/1910] Compiling C object src/backend/postgres_lib.a.p/commands_trigger.c.o
In file included from ../postgres/src/backend/commands/trigger.c:14:0:
../postgres/src/backend/commands/trigger.c: In function ‘ExecCallTriggerFunc’:
../postgres/src/include/postgres.h:314:2: warning: ‘result’ may be used uninitialized in this function [-Wmaybe-uninitialized]
return (Pointer) X;
^
../postgres/src/backend/commands/trigger.c:2316:9: note: ‘result’ was declared here
Datum result;
^
[1023/1910] Compiling C object src/backend/postgres_lib.a.p/utils_adt_xml.c.o
../postgres/src/backend/utils/adt/xml.c: In function ‘xml_pstrdup_and_free’:
../postgres/src/backend/utils/adt/xml.c:1359:2: warning: ‘result’ may be used uninitialized in this function [-Wmaybe-uninitialized]
return result;
^
[1600/1910] Compiling C object contrib/pg_stat_statements/pg_stat_statements.so.p/pg_stat_statements.c.o
../postgres/contrib/pg_stat_statements/pg_stat_statements.c: In function ‘pgss_planner’:
../postgres/contrib/pg_stat_statements/pg_stat_statements.c:960:2: warning: ‘result’ may be used uninitialized in this function [-Wmaybe-uninitialized]
return result;
^
[1651/1910] Compiling C object contrib/postgres_fdw/postgres_fdw.so.p/postgres_fdw.c.o
../postgres/contrib/postgres_fdw/postgres_fdw.c: In function ‘postgresAcquireSampleRowsFunc’:
../postgres/contrib/postgres_fdw/postgres_fdw.c:5346:14: warning: ‘reltuples’ may be used uninitialized in this function [-Wmaybe-uninitialized]
*totalrows = reltuples;
^
[1910/1910] Linking target src/interfaces/ecpg/test/thread/alloc
```
# Solution
PSA the patch to keep the compiler quiet. IIUC my compiler considered that
substitutions in PG_TRY() might be skipped. I'm not sure it is real problem,
but the workarounds are harmless.
Or, did I miss something for ignoring above?
Best Regards,
Hayato Kuroda
FUJITSU LIMITED
Attachment | Content-Type | Size |
---|---|---|
keep_quiet.patch | application/octet-stream | 2.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2023-08-01 05:03:36 | Re: Incorrect handling of OOM in WAL replay leading to data loss |
Previous Message | Kyotaro Horiguchi | 2023-08-01 04:51:13 | Re: Incorrect handling of OOM in WAL replay leading to data loss |