https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94905
Chris Moller changed:
What|Removed |Added
CC||moller at mollerware dot com
--- Comment #7 from Chris Moller ---
A little follow-up:
What's happening is that in gcc/tree-ssa-uninit.c, in
pass_late_warn_uninitialized::execute (function *fun),
warn_uninitialized_vars() is called with an argument of 1. Then, in
warn_uninitialized_vars(), walk_aliased_vdefs (&ref, use, check_defs, &data,
NULL,&fentry_reached, limit); is called, returning with fentry_reached set to
false, which then leads to the warning being generated.
In gcc/tree-ssa-alias.c, in walk_aliased_vdefs_1(), *function_entry_reached =
true; is never reached because gimple_nop_p (def_stmt) never returns true.
I've attached a bit of preprocessed sample code that reliably fails with
g++ -DHAVE_CONFIG_H -I. -I..-Wall -I sql -Werror -rdynamic -g -O2 -MT
apl-Shape.o -MD -MP -MF .deps/apl-Shape.Tpo -c Shape-preprocessed.cc