1/* PR middle-end/29695 */
2
3extern void abort (void);
4
5int a = 128;
6unsigned char b = 128;
7long long c = 0x80000000LL;
8unsigned int d = 0x80000000;
9
10int
11f1 (void)
12{
13  return (a & 0x80) ? 0x80 : 0;
14}
15
16int
17f2 (void)
18{
19  return (b & 0x80) ? 0x80 : 0;
20}
21
22int
23f3 (void)
24{
25  return (b & 0x80) ? 0x380 : 0;
26}
27
28int
29f4 (void)
30{
31  return (b & 0x80) ? -128 : 0;
32}
33
34long long
35f5 (void)
36{
37  return (c & 0x80000000) ? 0x80000000LL : 0LL;
38}
39
40long long
41f6 (void)
42{
43  return (d & 0x80000000) ? 0x80000000LL : 0LL;
44}
45
46long long
47f7 (void)
48{
49  return (d & 0x80000000) ? 0x380000000LL : 0LL;
50}
51
52long long
53f8 (void)
54{
55  return (d & 0x80000000) ? -2147483648LL : 0LL;
56}
57
58int
59main (void)
60{
61  if ((char) 128 != -128 || (int) 0x80000000 != -2147483648)
62    return 0;
63  if (f1 () != 128)
64    abort ();
65  if (f2 () != 128)
66    abort ();
67  if (f3 () != 896)
68    abort ();
69  if (f4 () != -128)
70    abort ();
71  if (f5 () != 0x80000000LL)
72    abort ();
73  if (f6 () != 0x80000000LL)
74    abort ();
75  if (f7 () != 0x380000000LL)
76    abort ();
77  if (f8 () != -2147483648LL)
78    abort ();
79  return 0;
80}
81