[Bug c/82283] Wrong warning with -Wmissing-field-initializers
rsandifo at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 4 08:28:05 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82283
rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rsandifo at gcc dot gnu.org
--- Comment #12 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Here's another example, from Alexey Neyman
[https://gcc.gnu.org/pipermail/gcc-help/2022-February/141197.html]:
struct foo {
const char *a1;
const char * const *a2;
void *a3;
void *a4;
};
const char *aux[] = { "y", 0 };
struct foo a = {
.a1 = "x",
#if defined(CASE1)
.a2 = (const char * const []){ "y", 0 },
#elif defined(CASE2)
.a2 = aux,
#elif defined(CASE3)
.a2 = 0,
#elif defined(CASE4)
/* .a2 not initialized */
#elif defined(CASE5)
.a2 = (const char * const []){ "y", 0 },
.a3 = 0,
#endif
};
struct foo b = {
.a2 = (const char * const []){ "y", 0 },
.a1 = "x",
};
Only CASE1 of a warns; the others are (correctly) accepted
without warnings.
More information about the Gcc-bugs
mailing list