1 /* { dg-do run } */ 2 3 struct foo 4 { 5 __UINT32_TYPE__ x; 6 }; 7 typedef struct foo foo; 8 zot(foo * f)9static inline __INT32_TYPE__ zot(foo *f) 10 { 11 int ret; 12 13 if (f->x > 0x7FFFFFFF) 14 ret = (__INT32_TYPE__)(f->x - 0x7FFFFFFF); 15 else 16 ret = (__INT32_TYPE__)f->x - 0x7FFFFFFF; 17 return ret; 18 } 19 bar(foo * f)20void __attribute__((noinline,noclone)) bar(foo *f) 21 { 22 __INT32_TYPE__ ret = zot(f); 23 volatile __INT32_TYPE__ x = ret; 24 if (ret < 1) 25 __builtin_abort (); 26 } 27 main()28int main() 29 { 30 foo f; 31 f.x = 0x800003f8; 32 33 bar(&f); 34 return 0; 35 } 36