On Fri, 2016-09-02 at 15:41 -0400, Eric Gallager wrote: > On 9/2/16, Segher Boessenkool <seg...@kernel.crashing.org> wrote: > > On Fri, Sep 02, 2016 at 02:21:07PM -0400, Eric Gallager wrote: > > > ../../gcc/combine.c: In function ‘int > > > combine_instructions(rtx_insn*, > > > unsigned int)’: > > > ../../gcc/combine.c:1310:8: warning: ‘prev’ may be used > > > uninitialized > > > in this function [-Wmaybe-uninitialized] > > > if ((next = try_combine (insn, prev, NULL, NULL, > > > ^~ > > > > That is: > > > > if (HAVE_cc0 > > && JUMP_P (insn) > > && (prev = prev_nonnote_insn (insn)) != 0 > > && NONJUMP_INSN_P (prev) > > && sets_cc0_p (PATTERN (prev))) > > { > > if ((next = try_combine (insn, prev, NULL, NULL, > > &new_direct_jump_p, > > last_combined_insn)) != 0) > > > > so prev is always initialised here. Could you try to find out why > > GCC > > warns anyway? Or open a PR? > > > > HAVE_cc0 probably expands to 0 (I'm not sure what your target is), > > that > > might have something to do with it. > > > > > > Segher > > > > > My target is i386-apple-darwin9.8.0. If HAVE_cc0 expands to 0, then > the code inside the brackets wouldn't even be reached anyways, would > it? Where would HAVE_cc0 be defined?
It's defined in insn-config.h, which is generated in build/gcc by genconfig from the target's machine description file.