1 Submitted By: Michael (rabenkind at selfservix dot org)
3 Initial Package Version: 3.5.10
4 Origin: http://de-mirror.org/distro/frugalware/frugalware-current/source/kde/kdelibs/
5 Upstream Status: Unknown
6 Description: Fix compilation with gcc-4.4
8 --- kdelibs-3.5.10/kjs/dtoa.cpp.orig 2009-05-26 17:20:54.673539511 +0200
9 +++ kdelibs-3.5.10/kjs/dtoa.cpp 2009-05-26 17:24:20.117023777 +0200
10 @@ -207,11 +207,7 @@ typedef unsigned Long ULong;
15 -extern char *MALLOC();
17 extern void *MALLOC(size_t);
22 @@ -273,12 +269,8 @@ extern "C" {
27 -#define CONST /* blank */
33 #if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1
34 Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined.
35 @@ -286,37 +278,19 @@ Exactly one of IEEE_8087, IEEE_MC68k, VA
37 typedef union { double d; ULong L[2]; } U;
41 +#define dval(x) (x).d
43 -#define word0(x) ((ULong *)&x)[1]
44 -#define word1(x) ((ULong *)&x)[0]
45 +#define word0(x) (x).L[1]
46 +#define word1(x) (x).L[0]
48 -#define word0(x) ((ULong *)&x)[0]
49 -#define word1(x) ((ULong *)&x)[1]
53 -#define word0(x) ((U*)&x)->L[1]
54 -#define word1(x) ((U*)&x)->L[0]
56 -#define word0(x) ((U*)&x)->L[0]
57 -#define word1(x) ((U*)&x)->L[1]
59 -#define dval(x) ((U*)&x)->d
60 +#define word0(x) (x).L[0]
61 +#define word1(x) (x).L[1]
64 /* The following definition of Storeinc is appropriate for MIPS processors.
65 * An alternative that might be better on some machines is
66 - * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff)
68 -#if defined(IEEE_8087) + defined(VAX)
69 -#define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \
70 -((unsigned short *)a)[0] = (unsigned short)c, a++)
72 -#define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \
73 -((unsigned short *)a)[1] = (unsigned short)c, a++)
75 +#define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff)
77 /* #define P DBL_MANT_DIG */
78 /* Ten_pmax = floor(P*log(2)/log(5)) */
79 @@ -440,11 +414,7 @@ typedef union { double d; ULong L[2]; }
81 #define rounded_product(a,b) a = rnd_prod(a, b)
82 #define rounded_quotient(a,b) a = rnd_quot(a, b)
84 -extern double rnd_prod(), rnd_quot();
86 extern double rnd_prod(double, double), rnd_quot(double, double);
89 #define rounded_product(a,b) a *= b
90 #define rounded_quotient(a,b) a /= b
91 @@ -457,11 +427,7 @@ extern double rnd_prod(double, double),
96 -#define FFFFFFFF ((((unsigned long)0xffff)<<16)|(unsigned long)0xffff)
98 #define FFFFFFFF 0xffffffffUL
103 @@ -502,11 +468,7 @@ Bigint {
115 @@ -542,11 +504,7 @@ Balloc
126 ACQUIRE_DTOA_LOCK(0);
127 @@ -561,11 +519,7 @@ y->wds*sizeof(Long) + 2*sizeof(int))
132 - (b, m, a) Bigint *b; int m, a;
134 (Bigint *b, int m, int a) /* multiply by m and add a */
139 @@ -618,11 +572,7 @@ multadd
144 - (s, nd0, nd, y9) CONST char *s; int nd0, nd; ULong y9;
146 (CONST char *s, int nd0, int nd, ULong y9)
151 @@ -656,11 +606,7 @@ s2b
156 - (x) register ULong x;
163 @@ -690,11 +636,7 @@ hi0bits
174 register ULong x = *y;
175 @@ -738,11 +680,7 @@ lo0bits
187 @@ -754,11 +692,7 @@ i2b
192 - (a, b) Bigint *a, *b;
194 (Bigint *a, Bigint *b)
199 @@ -866,11 +800,7 @@ mult
204 - (b, k) Bigint *b; int k;
209 Bigint *b1, *p5, *p51;
211 @@ -923,11 +853,7 @@ pow5mult
216 - (b, k) Bigint *b; int k;
223 @@ -983,11 +909,7 @@ lshift
228 - (a, b) Bigint *a, *b;
230 (Bigint *a, Bigint *b)
233 ULong *xa, *xa0, *xb, *xb0;
235 @@ -1017,11 +939,7 @@ cmp
240 - (a, b) Bigint *a, *b;
242 (Bigint *a, Bigint *b)
247 @@ -1111,15 +1029,12 @@ diff
263 L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1;
264 #ifndef Avoid_Underflow
265 #ifndef Sudden_Underflow
266 @@ -1153,15 +1068,11 @@ ulp
271 - (a, e) Bigint *a; int *e;
276 ULong *xa, *xa0, w, y, z;
283 @@ -1223,12 +1134,9 @@ b2d
288 - (d, e, bits) double d; int *e, *bits;
290 - (double d, int *e, int *bits)
292 + (double dd, int *e, int *bits)
298 @@ -1237,6 +1145,9 @@ d2b
305 d0 = word0(d) >> 16 | word0(d) << 16;
306 d1 = word1(d) >> 16 | word1(d) << 16;
308 @@ -1361,13 +1272,9 @@ d2b
313 - (a, b) Bigint *a, *b;
315 (Bigint *a, Bigint *b)
322 dval(da) = b2d(a, &ka);
323 @@ -1453,11 +1360,7 @@ static CONST double tinytens[] = { 1e-16
328 - (sp, t) char **sp, *t;
330 (CONST char **sp, CONST char *t)
335 @@ -1475,11 +1378,7 @@ match
340 - (rvp, sp) double *rvp; CONST char **sp;
342 - (double *rvp, CONST char **sp)
344 + (U *rvp, CONST char **sp)
348 @@ -1529,11 +1428,7 @@ hexnan
353 - (s00, se) CONST char *s00; char **se;
355 (CONST char *s00, char **se)
358 #ifdef Avoid_Underflow
360 @@ -1541,7 +1436,8 @@ kjs_strtod
361 int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign,
362 e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign;
363 CONST char *s, *s0, *s1;
364 - double aadj, aadj1, adj, rv, rv0;
365 + double aadj, aadj1, adj;
369 Bigint *bb = NULL, *bb1 = NULL, *bd = NULL, *bd0 = NULL, *bs = NULL, *delta = NULL;
370 @@ -2302,7 +2198,9 @@ kjs_strtod
372 aadj1 = dsign ? aadj : -aadj;
374 - word0(aadj1) += (2*P+1)*Exp_msk1 - y;
375 + dval(aadj2) = aadj1;
376 + word0(aadj2) += (2*P+1)*Exp_msk1 - y;
377 + aadj1 = dval(aadj2);
379 adj = aadj1 * ulp(dval(rv));
381 @@ -2419,11 +2317,7 @@ kjs_strtod
386 - (b, S) Bigint *b, *S;
388 (Bigint *b, Bigint *S)
392 ULong *bx, *bxe, q, *sx, *sxe;
393 @@ -2540,11 +2434,7 @@ quorem
405 @@ -2563,11 +2453,7 @@ rv_alloc(int i)
410 -nrv_alloc(s, rve, n) char *s, **rve; int n;
412 nrv_alloc(CONST char *s, char **rve, int n)
417 @@ -2585,11 +2471,7 @@ nrv_alloc(CONST char *s, char **rve, int
422 -kjs_freedtoa(s) char *s;
424 kjs_freedtoa(char *s)
427 Bigint *b = (Bigint *)((int *)s - 1);
428 b->maxwds = 1 << (b->k = *(int*)b);
429 @@ -2636,12 +2518,7 @@ kjs_freedtoa(char *s)
434 - (d, mode, ndigits, decpt, sign, rve)
435 - double d; int mode, ndigits, *decpt, *sign; char **rve;
437 - (double d, int mode, int ndigits, int *decpt, int *sign, char **rve)
439 + (double dd, int mode, int ndigits, int *decpt, int *sign, char **rve)
441 /* Arguments ndigits, decpt, sign are similar to those
442 of ecvt and fcvt; trailing zeros are suppressed from
443 @@ -2686,7 +2563,8 @@ kjs_dtoa
446 Bigint *b, *b1, *delta, *mlo = NULL, *mhi, *S;
447 - double d2, ds, eps;
451 #ifdef Honor_FLT_ROUNDS
453 @@ -2702,6 +2580,7 @@ kjs_dtoa
458 if (word0(d) & Sign_bit) {
459 /* set sign for everything, including 0's and NaNs */