BUG #19343: toast_internals.c:139:2: warning: missing braces around initializer [-Wmissing-braces]

Started by PG Bug reporting form5 months ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 19343
Logged by: Natalie Reno
Email address: natalie.reno@cchmc.org
PostgreSQL version: 16.11
Operating system: RHEL7
Description:

When compiling the latest version, 16.11, I received the following error:
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Werror=vla -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -O2 -I../../../../src/include -D_GNU_SOURCE
-c -o toast_internals.o toast_internals.c
toast_internals.c: In function ‘toast_save_datum’:
toast_internals.c:139:2: warning: missing braces around initializer
[-Wmissing-braces]
} chunk_data = {0}; /* silence compiler warning */
^
toast_internals.c:139:2: warning: (near initialization for ‘chunk_data.hdr’)
[-Wmissing-braces]

When I compared toast_internals.c files between 16.11 and 16.10, I found
this difference that is supposed to account for silencing the compiler
warning.

diff
/u01/app/postgres/product/postgresql-16.11/src/backend/access/common/toast_internals.c
/u01/app/postgres/product/postgresql-16.10/src/backend/access/common/toast_internals.c
139c139
< } chunk_data = {0}; /* silence compiler
warning */ <-- 16.11
---

Show quoted text

} chunk_data; <-- 16.10

#2Heikki Linnakangas
heikki.linnakangas@enterprisedb.com
In reply to: PG Bug reporting form (#1)
Re: BUG #19343: toast_internals.c:139:2: warning: missing braces around initializer [-Wmissing-braces]

On 02/12/2025 21:41, PG Bug reporting form wrote:

The following bug has been logged on the website:

`>

Bug reference: 19343
Logged by: Natalie Reno
Email address: natalie.reno@cchmc.org
PostgreSQL version: 16.11
Operating system: RHEL7
Description:

When compiling the latest version, 16.11, I received the following error:
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Werror=vla -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -O2 -I../../../../src/include -D_GNU_SOURCE
-c -o toast_internals.o toast_internals.c
toast_internals.c: In function ‘toast_save_datum’:
toast_internals.c:139:2: warning: missing braces around initializer
[-Wmissing-braces]
} chunk_data = {0}; /* silence compiler warning */
^
toast_internals.c:139:2: warning: (near initialization for ‘chunk_data.hdr’)
[-Wmissing-braces]

When I compared toast_internals.c files between 16.11 and 16.10, I found
this difference that is supposed to account for silencing the compiler
warning.

diff
/u01/app/postgres/product/postgresql-16.11/src/backend/access/common/toast_internals.c
/u01/app/postgres/product/postgresql-16.10/src/backend/access/common/toast_internals.c
139c139
< } chunk_data = {0}; /* silence compiler
warning */ <-- 16.11
---

} chunk_data; <-- 16.10

On 'master', this was done slightly differently, see commit 748caa9dcb.
Peter decided to only do that bigger code rearrangement on 'master', and
do the less invasive initialization on backbranches [1]/messages/by-id/76f41fdc-69e1-43b4-b9aa-503b07980de1@eisentraut.org. I think we
should just backpatch the bigger code rearrangement too.

[1]: /messages/by-id/76f41fdc-69e1-43b4-b9aa-503b07980de1@eisentraut.org
/messages/by-id/76f41fdc-69e1-43b4-b9aa-503b07980de1@eisentraut.org

- Heikki