------- Comment #2 from tbm at cyrius dot com 2007-08-21 21:03 ------- typedef long unsigned int size_t; typedef struct { } ldiv_t; typedef unsigned long int ulong; enum { t_INT = 1, t_REAL = 2, t_INTMOD = 3, t_FRAC = 4, t_COMPLEX = 6, t_PADIC = 15, t_QFI = 16, t_VEC = 17, t_COL = 18, t_MAT = 19, t_LIST = 20, t_STR = 21, t_VECSMALL = 22 }; typedef long *GEN; typedef ulong pari_sp; extern pari_sp avma, bot, top; GEN gerepileuptoleaf (pari_sp av, GEN q); GEN mulir (GEN x, GEN y); GEN mulrr (GEN x, GEN y); __inline__ static GEN new_chunk (size_t x) { const GEN z = ((GEN) avma) - x; return z; } __inline__ static GEN cgetg (long x, long y) { const GEN z = new_chunk ((size_t) x); return z; } mpadd (GEN x, GEN y) { } __inline__ static GEN mpmul (GEN x, GEN y) { return (((long) ((((ulong *) (y))[0]) >> ((1L << (3 + 3)) - 7))) == t_INT) ? mulir (y, x) : mulrr (x, y); } GEN checkbnf_i (GEN bnf); initzeta (GEN pol, long prec) { GEN nfz, nf, gr1, gr2, gru, p1, p2, cst, coef, bnf = checkbnf_i (pol); GEN limx, resi, zet, C, coeflog, racpi, aij, tabj, colzero, *tabcstn, *tabcstni; long N0, i0, r1, r2, r, R, N, i, j, k, n, bit = (((prec) - 2) << (3 + 3)) + 6; pari_sp av, av2; C = cgetg (r + 1, t_MAT); { GEN aiji = (((GEN *) (aij))[i]); for (k = 1; k <= r; k++) { { GEN tabjn = (((GEN *) (tabj))[n]), p2 = mpmul ((((GEN *) (aiji))[1 + k]), (((GEN *) (tabjn))[1])); for (j = 2; j <= r - k + 1; j++) mpadd (p2, mpmul ((((GEN *) (aiji))[j + k]), (((GEN *) (tabjn))[j]))); } (((GEN **) (C))[k][i]) = gerepileuptoleaf (av2, p1); } } }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33140