[Bug middle-end/49754] Wuninitialized does not work with structs/unions/arrays
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jun 23 21:03:58 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49754
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |msebor at gcc dot gnu.org
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=95848
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #8 from Martin Sebor <msebor at gcc dot gnu.org> ---
GCC 11 (and prior) diagnose both functions in comment #0, I suspect as a result
of r156156:
pr49754.c: In function ‘foo’:
pr49754.c:2:38: warning: ‘x’ is used uninitialized [-Wuninitialized]
2 | struct i foo () { struct i x; return x; }
| ^
pr49754.c:2:28: note: ‘x’ declared here
2 | struct i foo () { struct i x; return x; }
| ^
pr49754.c: In function ‘bar’:
pr49754.c:3:28: warning: ‘y’ is used uninitialized [-Wuninitialized]
3 | int bar () { int y; return +y; }
| ^~
Returning larger aggregates started to be diagnosed in r245840. Passing
structs to other functions by value still isn't diagnosed. It used to be, but
it stopped sometime between r143699 and r143725.
See pr95848 that tracks the problem with pass-by-value.
More information about the Gcc-bugs
mailing list