int __attribute__ ((noinline)) foo (short x, unsigned short y) { return x * y; } int __attribute__ ((noinline)) bar (unsigned short x, short y) { return x * y; } int main () { if (foo (-2, 0xffff) != -131070) abort (); if (foo (2, 0xffff) != 131070) abort (); if (foo (-32768, 0x8000) != -1073741824) abort (); if (foo (32767, 0x8000) != 1073709056) abort (); if (bar (0xffff, -2) != -131070) abort (); if (bar (0xffff, 2) != 131070) abort (); if (bar (0x8000, -32768) != -1073741824) abort (); if (bar (0x8000, 32767) != 1073709056) abort (); exit (0); }