diff options
author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-04-10 13:18:45 +0000 |
---|---|---|
committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-04-10 13:18:45 +0000 |
commit | fd3229e755c76e153b07db586dafffa83fe84b69 (patch) | |
tree | cc649f0b51f238dc501f495b2fbcac534c54220e /tools/sdcc | |
parent | 338bcc51d70aa7f10a4b7fdbb99d800af79fce95 (diff) |
[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.patch | 20 |
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 000000000..71db14f81 --- /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 + + + /*-----------------------------------------------------------------*/ |