Backprot fix for uninitialised use in mips_split_move

Fixes PR target/91474 and PR target/91702.

2019-10-04  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	Backport from mainline
	2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>

	gcc/
		* config/mips/mips.c (mips_split_move): Zero-initialize addr
		and check whether addr.reg is nonnull before using it.

From-SVN: r276569
This commit is contained in:
Dragan Mladjenovic 2019-10-04 10:57:48 +00:00
parent 3d583f47b7
commit b753d85d20
2 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2019-10-04 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
Backport from mainline
2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
* 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 <bernd.edlinger@hotmail.de>
Backport from mainline

View File

@ -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