re PR tree-optimization/79345 (passing yet-uninitialized member as argument to base...
authorRichard Biener <rguenther@suse.de>
Thu, 2 Mar 2017 13:42:05 +0000 (13:42 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 2 Mar 2017 13:42:05 +0000 (13:42 +0000)
commite80facb4afaaa4d42b17f6970e9738f7c293f522
tree1ae9c4a7112cdf29926e13b25e432f7a93f48b81
parentf03e92172a78fbb7beab293ced88b161b2cfb4c5
re PR tree-optimization/79345 (passing yet-uninitialized member as argument to base class constructor should warn (-Wunitialized))

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.

From-SVN: r245840
gcc/ChangeLog
gcc/fixed-value.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/ubsan/bounds-2.c
gcc/testsuite/g++.dg/warn/Wuninitialized-7.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/uninit-pr19430-2.c
gcc/tree-ssa-alias.c
gcc/tree-ssa-alias.h
gcc/tree-ssa-uninit.c