--- src/basemath/mftrace.c +++ src/basemath/mftrace.c @@ -579,7 +579,7 @@ mfcharGL(GEN G, GEN L) return mkvec4(G, L, o, polcyclo(ord,vt)); } static GEN -mfchartrivial() +mfchartrivial(void) { return mfcharGL(znstar0(gen_1,1), cgetg(1,t_COL)); } /* convert a generic character into an 'mfchar' */ static GEN @@ -1593,7 +1593,7 @@ mfcoef(GEN F, long n) } static GEN -paramconst() { return tagparams(t_MF_CONST, mkNK(1,0,mfchartrivial())); } +paramconst(void) { return tagparams(t_MF_CONST, mkNK(1,0,mfchartrivial())); } static GEN mftrivial(void) { retmkvec2(paramconst(), cgetg(1,t_VEC)); } static GEN --- src/basemath/modsym.c +++ src/basemath/modsym.c @@ -1442,11 +1442,11 @@ indices_backward(GEN W, GEN C) /*[0,-1;1,-1]*/ static GEN -mkTAU() +mkTAU(void) { return mkmat22(gen_0,gen_m1, gen_1,gen_m1); } /* S */ static GEN -mkS() +mkS(void) { return mkmat22(gen_0,gen_1, gen_m1,gen_0); } /* N = integer > 1. Returns data describing Delta_0 = Z[P^1(Q)]_0 seen as * a Gamma_0(N) - module. */ --- src/language/eval.c +++ src/language/eval.c @@ -1262,11 +1262,11 @@ closure_eval(GEN C) break; } -#define EVAL_f(f) \ +#define EVAL_f0(f) f() +#define EVAL_f1(f) sp--; f(st[sp]) +#define EVAL_fn(f) \ switch (ep->arity) \ { \ - case 0: f(); break; \ - case 1: sp--; f(st[sp]); break; \ case 2: sp-=2; f(st[sp],st[sp+1]); break; \ case 3: sp-=3; f(st[sp],st[sp+1],st[sp+2]); break; \ case 4: sp-=4; f(st[sp],st[sp+1],st[sp+2],st[sp+3]); break; \ @@ -1297,7 +1297,12 @@ closure_eval(GEN C) GEN res; /* Macro Madness : evaluate function ep->value on arguments * st[sp-ep->arity .. sp]. Set res = result. */ - EVAL_f(res = ((GEN (*)(ANYARG))ep->value)); + switch (ep->arity) + { + case 0: EVAL_f0(res = ((GEN (*)(void))ep->value)); break; + case 1: EVAL_f1(res = ((GEN (*)(long))ep->value)); break; + default: EVAL_fn(res = ((GEN (*)(long, ...))ep->value)); + } if (br_status) goto endeval; gel(st,sp++)=res; break; @@ -1316,7 +1321,12 @@ closure_eval(GEN C) { entree *ep = (entree *)operand; long res; - EVAL_f(res = ((long (*)(ANYARG))ep->value)); + switch (ep->arity) + { + case 0: EVAL_f0(res = ((long (*)(void))ep->value)); break; + case 1: EVAL_f1(res = ((long (*)(long))ep->value)); break; + default: EVAL_fn(res = ((long (*)(long, ...))ep->value)); + } if (br_status) goto endeval; st[sp++] = res; break; @@ -1325,7 +1335,12 @@ closure_eval(GEN C) { entree *ep = (entree *)operand; long res; - EVAL_f(res = ((int (*)(ANYARG))ep->value)); + switch (ep->arity) + { + case 0: EVAL_f0(res = ((int (*)(void))ep->value)); break; + case 1: EVAL_f1(res = ((int (*)(long))ep->value)); break; + default: EVAL_fn(res = ((int (*)(long, ...))ep->value)); + } if (br_status) goto endeval; st[sp++] = res; break; @@ -1333,11 +1348,18 @@ closure_eval(GEN C) case OCcallvoid: { entree *ep = (entree *)operand; - EVAL_f(((void (*)(ANYARG))ep->value)); + switch (ep->arity) + { + case 0: EVAL_f0(((void (*)(void))ep->value)); break; + case 1: EVAL_f1(((void (*)(long))ep->value)); break; + default: EVAL_fn(((void (*)(long, ...))ep->value)); + } if (br_status) goto endeval; break; } -#undef EVAL_f +#undef EVAL_f0 +#undef EVAL_f1 +#undef EVAL_fn case OCcalluser: { --- src/language/init.c +++ src/language/init.c @@ -120,7 +120,7 @@ void (*cb_pari_pre_recover)(long); void (*cb_pari_err_recover)(long); int (*cb_pari_break_loop)(int); int (*cb_pari_is_interactive)(void); -void (*cb_pari_start_output)(); +void (*cb_pari_start_output)(void); const char * pari_library_path = NULL;