This test assumes that integer constants passed as varargs are promoted to a type at least as big as "long", which is not valid on 16 bit hosts. For example:
void
f1 (int i, ...)
{
va_start (gap, i);
x = va_arg (gap, long);
int
main (void)
{
f1 (1, 79);
if (x != 79)
abort ();
Shouldn't those constants be 79L, not just 79? That change fixes one
m32c failure, but given that it's a test case I'm not going to make
any assumptions about it.
