From 6976bc87f162c542c2b92ee222401150af3fcc34 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Tue, 8 Jan 2019 19:09:52 +0000 Subject: [PATCH] re PR bootstrap/88721 (-Wmaybe-uninitialized warnings in sparc.c) PR bootstrap/88721 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING to -1 on entry. PR debug/88723 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked UNSPECs and UNSPEC_MOVE_GOTDATA specifically. From-SVN: r267734 --- gcc/ChangeLog | 10 ++++++++++ gcc/config/sparc/sparc.c | 17 ++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7b4f6e5270b..18dab7e6864 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2019-01-08 Eric Botcazou + + PR bootstrap/88721 + * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING + to -1 on entry. + + PR debug/88723 + * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked + UNSPECs and UNSPEC_MOVE_GOTDATA specifically. + 2019-01-08 H.J. Lu PR target/88717 diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 72669afbfbd..62644e0a7da 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -4949,12 +4949,19 @@ sparc_delegitimize_address (rtx x) { x = delegitimize_mem_from_attrs (x); - if (GET_CODE (x) == LO_SUM && GET_CODE (XEXP (x, 1)) == UNSPEC) - switch (XINT (XEXP (x, 1), 1)) + if (GET_CODE (x) == LO_SUM) + x = XEXP (x, 1); + + if (GET_CODE (x) == UNSPEC) + switch (XINT (x, 1)) { case UNSPEC_MOVE_PIC: case UNSPEC_TLSLE: - x = XVECEXP (XEXP (x, 1), 0, 0); + x = XVECEXP (x, 0, 0); + gcc_assert (GET_CODE (x) == SYMBOL_REF); + break; + case UNSPEC_MOVE_GOTDATA: + x = XVECEXP (x, 0, 2); gcc_assert (GET_CODE (x) == SYMBOL_REF); break; default: @@ -6873,6 +6880,10 @@ function_arg_slotno (const struct sparc_args *cum, machine_mode mode, int slotno = cum->words, regno; enum mode_class mclass = GET_MODE_CLASS (mode); + /* Silence warnings in the callers. */ + *pregno = -1; + *ppadding = -1; + if (type && TREE_ADDRESSABLE (type)) return -1; -- 2.30.2