1 /* { dg-do run } */ 2 /* { dg-require-effective-target int32plus } */ 3 4 extern void abort (void); 5 unsigned short __attribute__((noinline)) foo(int i)6foo (int i) 7 { 8 if (i >= 0 9 && i <= 0x400000) 10 return (unsigned short)(signed char)i; 11 return i; 12 } main()13int main() 14 { 15 int i; 16 for (i = 0; i < 0xffff; ++i) 17 if (foo(i) != (unsigned short)(signed char) i) 18 abort (); 19 return 0; 20 } 21