aboutsummaryrefslogtreecommitdiffstats
path: root/tools/sdcc
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2012-04-10 13:18:45 +0000
committerJo-Philipp Wich <jow@openwrt.org>2012-04-10 13:18:45 +0000
commit32d864fd6339c35169988e22a8086a83ae5e805c (patch)
treecc649f0b51f238dc501f495b2fbcac534c54220e /tools/sdcc
parent45879534fd1d5e3722406b2b647a9caec7c5f72c (diff)
downloadupstream-32d864fd6339c35169988e22a8086a83ae5e805c.tar.gz
upstream-32d864fd6339c35169988e22a8086a83ae5e805c.tar.bz2
upstream-32d864fd6339c35169988e22a8086a83ae5e805c.zip
[tools] 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 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31236 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'tools/sdcc')
-rw-r--r--tools/sdcc/patches/100-workaround-gcc-4.6.2-hang.patch20
1 files changed, 20 insertions, 0 deletions
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
+
+
+ /*-----------------------------------------------------------------*/