[Bug middle-end/50476] Warn of pointer set to object whose lifetime is limited
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Aug 6 00:27:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50476
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |msebor at gcc dot gnu.org
Component|c |middle-end
Known to work| |10.0, 7.3.0, 8.3.0, 9.1.0
Resolution|--- |FIXED
Known to fail| |4.5.2, 4.8.5, 4.9.4, 5.4.0,
| |6.4.0
--- Comment #6 from Martin Sebor <msebor at gcc dot gnu.org> ---
GCC 7 and later diagnose the test case:
pr50476.c: In function ‘main’:
pr50476.c:17:9: warning: ‘y’ is used uninitialized in this function
[-Wuninitialized]
17 | printf("int: %d\n", *x);
| ^~~~~~~~~~~~~~~~~~~~~~~
The warning is less from ideal because it doesn't point to the y it refers to
but that's a separate issue.
The change that added the warning is r245840 so this can be resolved as fixed.
2017-03-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/79345
PR c++/42000
* tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
param and abort the walk, returning -1 if it is hit.
(walk_aliased_vdefs): Take a limit param and pass it on.
* tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
defaulting to 0 and return a signed int.
* tree-ssa-uninit.c (struct check_defs_data): New struct.
(check_defs): New helper.
(warn_uninitialized_vars): Use walk_aliased_vdefs to warn
about uninitialized memory.
* fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
bogus uninitialized warning.
(fixed_convert_from_real): Likewise.
* g++.dg/warn/Wuninitialized-7.C: New testcase.
* c-c++-common/ubsan/bounds-2.c: Add -Wno-uninitialized.
* gcc.dg/uninit-pr19430-2.c: Add expected warning.
More information about the Gcc-bugs
mailing list