1 extern void exit (int); 2 extern void abort (void); 3 extern unsigned short f (short a) __attribute__((__noinline__)); 4 5 unsigned short f(short a)6f (short a) 7 { 8 short b; 9 10 if (a > 0) 11 return 0; 12 b = ((int) a) + - (int) 32768; 13 return b; 14 } 15 16 int main(void)17main (void) 18 { 19 if (sizeof (short) < 2 20 || sizeof (short) >= sizeof (int)) 21 exit (0); 22 23 if (f (-32767) != 1) 24 abort (); 25 26 exit (0); 27 } 28