From: Dragan Mladjenovic Date: Fri, 4 Oct 2019 10:57:48 +0000 (+0000) Subject: Backprot fix for uninitialised use in mips_split_move X-Git-Tag: releases/gcc-9.3.0~578 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b753d85d205b4e24f0ce11160ebee1e8da98782e;p=thirdparty%2Fgcc.git Backprot fix for uninitialised use in mips_split_move Fixes PR target/91474 and PR target/91702. 2019-10-04 Dragan Mladjenovic Backport from mainline 2019-07-07 Richard Sandiford gcc/ * config/mips/mips.c (mips_split_move): Zero-initialize addr and check whether addr.reg is nonnull before using it. From-SVN: r276569 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1e9c050d45a0..ac7ae9ff1e30 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ + 2019-10-04 Dragan Mladjenovic + + Backport from mainline + 2019-07-07 Richard Sandiford + + * config/mips/mips.c (mips_split_move): Zero-initialize addr + and check whether addr.reg is nonnull before using it. + 2019-10-02 Bernd Edlinger Backport from mainline diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 2dfc7c73cce6..53429270327c 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -4849,7 +4849,7 @@ mips_split_move (rtx dest, rtx src, enum mips_split_type split_type, rtx insn_) can forward SRC for DEST. This is most useful if the next insn is a simple store. */ rtx_insn *insn = (rtx_insn *)insn_; - struct mips_address_info addr; + struct mips_address_info addr = {}; if (insn) { rtx_insn *next = next_nonnote_nondebug_insn_bb (insn); @@ -4862,7 +4862,7 @@ mips_split_move (rtx dest, rtx src, enum mips_split_type split_type, rtx insn_) { rtx tmp = XEXP (src, 0); mips_classify_address (&addr, tmp, GET_MODE (tmp), true); - if (REGNO (addr.reg) != REGNO (dest)) + if (addr.reg && REGNO (addr.reg) != REGNO (dest)) validate_change (next, &SET_SRC (set), src, false); } else