On 13 January 2012 11:51, Dennis Clarke wrote: > >> Dennis Clarke <dcla...@blastwave.org> writes: >> >>> for (argno = 0; argno < argc; argno++) { >>> if (argno < 6) >>> *tsp++ = reg[REG_O0 + argno] = va_arg(ap, long); >>> else >>> *tsp++ = va_arg(ap, long); >> >> This is broken. The arguments are of type int, not long. > > To be more compliant with IEEE Std 1003.1-2001 ( ISO/IEC 9899:1999 > standard, Section 6.2.5 ) they should be int32_t or similar as > per stdint.h.
http://pubs.opengroup.org/onlinepubs/009695399/functions/makecontext.html says the arguments are type int.