summaryrefslogtreecommitdiff
path: root/gnu/gcc
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2013-06-06 21:14:15 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2013-06-06 21:14:15 +0000
commit24c256c826a3363fdb6fda6c2172d17a6c77b4c2 (patch)
tree71297d3e43993198ca85ed3bb7769459b28a8dcf /gnu/gcc
parentd4a7160c3c2dd5f61a0cf1a5cf0f6d3ad53e4db7 (diff)
Disable a broken optimization in try_combine(); GCC PR #34628.
The PR comes with a real fix, but it is covered by the GPL v3, and is neither trivial nor straightforward, so use a hammer and disable the unreliable code. Verified to fix bogus code generation on macppc.
Diffstat (limited to 'gnu/gcc')
-rw-r--r--gnu/gcc/gcc/combine.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gnu/gcc/gcc/combine.c b/gnu/gcc/gcc/combine.c
index c5655ea4038..7ab118801a1 100644
--- a/gnu/gcc/gcc/combine.c
+++ b/gnu/gcc/gcc/combine.c
@@ -2374,8 +2374,10 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
above (see detailed comments there) that ensures that I1DEST
isn't mentioned in any SETs in NEWPAT that are field assignments. */
+#if !defined(OPENBSD_NATIVE) && !defined(OPENBSD_CROSS) /* GCC PR #34628 */
if (! combinable_i3pat (NULL_RTX, &newpat, i1dest, NULL_RTX,
0, (rtx*) 0))
+#endif
{
undo_all ();
return 0;