diff -ur kdelibs-4.2.1/kjs/dtoa.cpp kdelibs-4.2.1-kjs-gcc44-crash/kjs/dtoa.cpp --- kdelibs-4.2.1/kjs/dtoa.cpp 2008-05-21 13:06:47.000000000 +0200 +++ kdelibs-4.2.1-kjs-gcc44-crash/kjs/dtoa.cpp 2009-03-03 20:18:46.000000000 +0100 @@ -299,6 +299,15 @@ #define word0(x) ((ULong *)&x)[0] #define word1(x) ((ULong *)&x)[1] #endif +#elif defined __GNUC__ +#define dval(x) x +#ifdef IEEE_8087 +#define word0(x) (__extension__ ((U) { d: (x) }).L[1]) +#define word1(x) (__extension__ ((U) { d: (x) }).L[0]) +#else +#define word0(x) (__extension__ ((U) { d: (x) }).L[0]) +#define word1(x) (__extension__ ((U) { d: (x) }).L[1]) +#endif #else #ifdef IEEE_8087 #define word0(x) ((U*)&x)->L[1] @@ -314,7 +323,9 @@ * An alternative that might be better on some machines is * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff) */ -#if defined(IEEE_8087) + defined(VAX) +#if !defined(YES_ALIAS) && defined(__GNUC__) +#define Storeinc(a,b,c) (*a++ = b << 16 | (c & 0xffff)) +#elif defined(IEEE_8087) + defined(VAX) #define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \ ((unsigned short *)a)[0] = (unsigned short)c, a++) #else