https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117610
Bug ID: 117610
Summary: -Wzero-as-null-pointer-constant false positive with
{0}
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: alx at kernel dot org
Target Milestone: ---
Reproducer:
alx@debian:~/tmp/gcc$ cat wzanpc.c
struct s1 {
int x;
};
struct s2 {
int *x;
};
int
main(void)
{
struct s1 a1[42] = {0};
struct s2 a2[42] = {0};
}
alx@debian:~/tmp/gcc$ gcc -Wzero-as-null-pointer-constant wzanpc.c
wzanpc.c: In function ‘main’:
wzanpc.c:12:30: warning: zero as null pointer constant
[-Wzero-as-null-pointer-constant]
12 | struct s2 a2[42] = {0};
| ^
The 0 is not initializing the struct member .x, but the array element --which
is a structure--, so it's not being used as a pointer.