From ac007ff48201607c10897a14ead7f3c2024eec85 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Tue, 10 Apr 2012 13:18:45 +0000
Subject: [PATCH] sdcc: compiling SDCCicode.c with -O2 sends gcc 4.6.x into an
 infinite loop, workaround it See references:
 http://sourceforge.net/tracker/?func=detail&aid=3285611&group_id=599&atid=300599
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52653

SVN-Revision: 31236
---
 .../100-workaround-gcc-4.6.2-hang.patch       | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 tools/sdcc/patches/100-workaround-gcc-4.6.2-hang.patch

diff --git a/tools/sdcc/patches/100-workaround-gcc-4.6.2-hang.patch b/tools/sdcc/patches/100-workaround-gcc-4.6.2-hang.patch
new file mode 100644
index 0000000000..71db14f816
--- /dev/null
+++ b/tools/sdcc/patches/100-workaround-gcc-4.6.2-hang.patch
@@ -0,0 +1,20 @@
+--- a/src/SDCCicode.c
++++ b/src/SDCCicode.c
+@@ -1130,6 +1130,9 @@ iCode *getBuiltinParms (iCode *ic, int *
+     return ic;
+ }
+ 
++#pragma GCC push_options
++#pragma GCC optimize ("O0")
++
+ /*-----------------------------------------------------------------*/
+ /* operandOperation - performs operations on operands             */
+ /*-----------------------------------------------------------------*/
+@@ -1405,6 +1408,7 @@ operandOperation (operand * left, operan
+ 
+   return retval;
+ }
++#pragma GCC pop_options
+ 
+ 
+ /*-----------------------------------------------------------------*/
-- 
2.30.2