Stefan Schulze Frielinghaus via Gcc-patches <gcc-patches@gcc.gnu.org> writes: > While bootstrapping GCC on S/390 the following warning/error is raised: > > gcc/var-tracking.c:10239:34: error: 'pre' may be used uninitialized in this > function [-Werror=maybe-uninitialized] > 10239 | VTI (bb)->out.stack_adjust += pre; > | ^ > > The lines of interest are: > > HOST_WIDE_INT pre, post = 0; > // ... > if (!frame_pointer_needed) > { > insn_stack_adjust_offset_pre_post (insn, &pre, &post); > // ... > } > > // ... > adjust_insn (bb, insn); > > if (!frame_pointer_needed && pre) > VTI (bb)->out.stack_adjust += pre; > > Both if statements depend on global variable frame_pointer_needed. In > function > insn_stack_adjust_offset_pre_post local variable pre is initialized. The > problematic part is the function call between both if statements. Since > adjust_insn also calls functions which are defined in a different compilation > unit, we are not able to prove that global variable frame_pointer_needed is > not > altered by adjust_insn and its siblings. Thus we must assume that > frame_pointer_needed may be true before the call and false afterwards which > renders the warning true (admitted the location hint is not totally perfect). > By initialising pre we silence the warning. > > Bootstrapped and regtested on S/390. Ok for master? > > gcc/ChangeLog: > > 2020-04-28 Stefan Schulze Frielinghaus <stefa...@linux.ibm.com> > > * var-tracking.c (vt_initialize): Initialize local variable pre.
OK, thanks. Richard