aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2015-09-10 19:17:24 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2015-09-10 19:17:24 +0000
commit4711983f43bd4f40e5b58f288afcd3ad844e241b (patch)
tree8f54e2e1ba1c7ef0538e010751160b6e6f90dc77 /gcc
parentec23e5b3950ab5a907aecdb0860340b86702ed13 (diff)
downloadgcc-4711983f43bd4f40e5b58f288afcd3ad844e241b.zip
gcc-4711983f43bd4f40e5b58f288afcd3ad844e241b.tar.gz
gcc-4711983f43bd4f40e5b58f288afcd3ad844e241b.tar.bz2
Stop reload1.c warning from breaking bootstrap
Some host-target combinations get bogus warnings about orig_dup being used uninitialized. I tried to coerce the current uninit pass to handle this case, but the patch I ended up with only worked by accident because of the strange way in which the pass handles limit cases. (If we have more than MAX_NUM_CHAINS chains, it silently drops the excess chains and continues regardless, so it's quite easy to come up with cases where the predicates for either the definition or the use consider an arbitrary subset of the actual conditions.) For now this patch turns -Wmaybe-uninitialized into a warning for the affacted function. It will be a warning even if someone turns off warnings on the command line, but I don't think that's important. Bootstrapped and regression-tested on x86_64-linux-gnu. Also tested with a cross-compiler to sparc-linux-gnu (which also triggered the warning for me). gcc/ * reload1.c (elimination_costs_in_insn): Locally turn -Wmaybe-uninitialized into a warning. From-SVN: r227658
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload1.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4831e7f..a9a6fbd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-09-10 Richard Sandiford <richard.sandiford@arm.com>
+
+ * reload1.c (elimination_costs_in_insn): Locally turn
+ -Wmaybe-uninitialized into a warning.
+
2015-09-10 Segher Boessenkool <segher@kernel.crashing.org>
* shrink-wrap.c (requires_stack_frame_p): Make static.
diff --git a/gcc/reload1.c b/gcc/reload1.c
index ad243e3..c7cc37b 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -3636,6 +3636,8 @@ eliminate_regs_in_insn (rtx_insn *insn, int replace)
eliminations in its operands and record cases where eliminating a reg with
an invariant equivalence would add extra cost. */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic warning "-Wmaybe-uninitialized"
static void
elimination_costs_in_insn (rtx_insn *insn)
{
@@ -3785,6 +3787,7 @@ elimination_costs_in_insn (rtx_insn *insn)
return;
}
+#pragma GCC diagnostic pop
/* Loop through all elimination pairs.
Recalculate the number not at initial offset.