media/libopus/gcc-4.8-ICE.patch
author Rail Aliiev <rail@mozilla.com>
Mon, 21 Sep 2015 06:40:27 -0400
changeset 295134 e61f327085dacc6a236e86d12cc871728e368696
parent 230221 1d1cbbd46b0dcc9669f5cf8c5a8862e3e73d2b67
permissions -rw-r--r--
Bug 1190766 - Tracking bug for Sep-21-2015 migration work. r=jlund DONTBUILD

From 609166a46f6a22ae2d0a0ab7c64415c779c65f37 Mon Sep 17 00:00:00 2001
From: Juan Gomez <atilag@gmail.com>
Date: Wed, 26 Nov 2014 23:57:49 +0100
Subject: [PATCH] Bug 1056337 - Upgrade toolchain used for B2G ICS builds *
 Patch for gcc ICE in OPUS library (arm)

---
 media/libopus/celt/rate.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/media/libopus/celt/rate.c b/media/libopus/celt/rate.c
index e13d839..1055e63 100644
--- a/media/libopus/celt/rate.c
+++ b/media/libopus/celt/rate.c
@@ -523,6 +523,12 @@ static OPUS_INLINE int interp_bits2pulses(const CELTMode *m, int start, int end,
    return codedBands;
 }
 
+#if !defined(__clang__) && defined(__GNUC__) && defined(__arm__) && \
+    __GNUC__ == 4 && __GNUC_MINOR__ == 8
+#warning "OPUS library causes an internal compiler error for gcc-4.8 based toolchain in arm"
+#pragma GCC push_options
+#pragma GCC optimize ("O0")
+#endif
 int compute_allocation(const CELTMode *m, int start, int end, const int *offsets, const int *cap, int alloc_trim, int *intensity, int *dual_stereo,
       opus_int32 total, opus_int32 *balance, int *pulses, int *ebits, int *fine_priority, int C, int LM, ec_ctx *ec, int encode, int prev, int signalBandwidth)
 {
@@ -635,4 +641,7 @@ int compute_allocation(const CELTMode *m, int start, int end, const int *offsets
    RESTORE_STACK;
    return codedBands;
 }
-
+#if !defined(__clang__) && defined(__GNUC__) && defined(__arm__) && \
+    __GNUC__ == 4 && __GNUC_MINOR__ == 8
+#pragma GCC pop_options
+#endif
-- 
2.1.0