On 11/23/2016 11:12 AM, Jakub Jelinek wrote: > On Wed, Nov 23, 2016 at 11:06:23AM +0100, Martin Liška wrote: >> I see broken bootstrap due to: >> >> .././../gcc/config/i386/i386.c: In function ‘rtx_def* >> ix86_expand_builtin(tree, rtx, rtx, machine_mode, int)’: >> .././../gcc/config/i386/i386.c:38407:18: error: ‘fcn’ may be used >> uninitialized in this function [-Werror=maybe-uninitialized] >> emit_insn (fcn (target, accum, wide_reg, mem)); >> ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> >> Thus I'm suggesting to initialize the variable (and 2 which are used in a >> very similar manner) to NULL. >> >> Patch can bootstrap on ppc64le-redhat-linux and survives regression tests. > > That is not very relevant for i386.c change, is it?
Sorry, I've used automatic testing. I'll re-trigger x86_64 bootstrap. > >> 2016-11-22 Martin Liska <mli...@suse.cz> >> >> * config/i386/i386.c: Initialize function pointers to NULL. >> --- >> gcc/config/i386/i386.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c >> index 25f0446..a373fcf 100644 >> --- a/gcc/config/i386/i386.c >> +++ b/gcc/config/i386/i386.c >> @@ -38218,9 +38218,9 @@ rdseed_step: >> && fcode <= IX86_BUILTIN__BDESC_ARGS2_LAST) >> { >> i = fcode - IX86_BUILTIN__BDESC_ARGS2_FIRST; >> - rtx (*fcn) (rtx, rtx, rtx, rtx); >> - rtx (*fcn_mask) (rtx, rtx, rtx, rtx, rtx); >> - rtx (*fcn_maskz) (rtx, rtx, rtx, rtx, rtx, rtx); >> + rtx (*fcn) (rtx, rtx, rtx, rtx) = NULL; >> + rtx (*fcn_mask) (rtx, rtx, rtx, rtx, rtx) = NULL; >> + rtx (*fcn_maskz) (rtx, rtx, rtx, rtx, rtx, rtx) = NULL; >> int masked = 1; >> machine_mode mode, wide_mode, nar_mode; > > nar_mode = V4SFmode; > mode = V16SFmode; > wide_mode = V64SFmode; > fcn_mask = gen_avx5124fmaddps_4fmaddps_mask; > fcn_maskz = gen_avx5124fmaddps_4fmaddps_maskz; > > follows this immediately, so there is no point in setting fcn_mask > and fcn_maskz to NULL. Will remove zeroing of these two. Martin > > Jakub >