void overload_inc(pTHX_ SV * p, SV * a, SV * b) { mpz_add_ui(*(INT2PTR(mpz_t *, SvIVX(SvRV(p)))), *(INT2PTR(mpz_t *, SvIVX(SvRV(p)))), 1); } #### void overload_inc (p, a, b) SV * p SV * a SV * b CODE: overload_inc(aTHX_ p, a, b); XSRETURN_EMPTY; /* return empty stack */ #### SV * overload_add_eq(pTHX_ SV * p, SV * a, SV * b) { mpz_add_ui(*(INT2PTR(mpz_t *, SvIVX(SvRV(p)))), *(INT2PTR(mpz_t *, SvIVX(SvRV(p)))), SvUV(a)); SvREFCNT_inc(p); return p; } #### SV * overload_add_eq (p, a, b) SV * p SV * a SV * b CODE: RETVAL = overload_add_eq (aTHX_ p, a, b); OUTPUT: RETVAL #### void overload_add_eq(pTHX_ SV * p, SV * a, SV * b) { mpz_add_ui(*(INT2PTR(mpz_t *, SvIVX(SvRV(p)))), *(INT2PTR(mpz_t *, SvIVX(SvRV(p)))), SvUV(a)); } #### void overload_add_eq (p, second, third) SV * p SV * a SV * b CODE: overload_add_eq(aTHX_ p, a, b); XSRETURN_EMPTY; /* return empty stack */