------- Additional Comments From belyshev at depni dot sinp dot msu dot ru 2005-05-06 04:39 ------- gamdit.h:2426: #define ___FIXADDP(x,y)((((x)^(y))&___FIX(___MIN_FIX))<=(((y)^((x)+(y)))&___FIX(___MIN_FIX))?___FIXADD(x,y):___FAL)
test2.c:3500: ___SET_R2(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP( ___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP( ___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___FIXADDP(___STK(-25),___STK(-24)), ___STK(-23)),___STK(-22)),___STK(-21)),___STK(-20)),___STK(-19)),___STK(-18) ... These cute macros are trying to expand into a 3^35 == 5E16 nodes, so no wonder that gcc is out of memory. Here is small testcase demonstrating same "problem": #define A(x) x;x;x;x; A(A(A(A(A(A(A(A(A(A(A(A(A(A(A(A(0)))))))))))))))) -- What |Removed |Added ---------------------------------------------------------------------------- GCC build triplet|x86_64-unknown-linux-gnu | GCC host triplet|x86_64-unknown-linux-gnu | GCC target triplet|x86_64-unknown-linux-gnu | Keywords| |memory-hog http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21410