kdelibs/kdelibs-4.2.1-kjs-gcc44-cra...

31 lines
1.1 KiB
Diff

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