1 /* { dg-do run } */
2
3 struct foo
4 {
5 __UINT32_TYPE__ x;
6 };
7 typedef struct foo foo;
8
9 static 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
20 void __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
28 int main()
29 {
30 foo f;
31 f.x = 0x800003f8;
32
33 bar(&f);
34 return 0;
35 }