1 /* { dg-do run } */
2
3 extern void abort (void);
4
5 struct {
6 unsigned f2;
7 unsigned f3 : 15;
8 unsigned f5 : 3;
9 short f6;
10 } b = {0x7f8000, 6, 5, 0}, g = {8, 0, 5, 0};
11
12 short d, l;
13 int a, c, h = 8;
14 volatile char e[237] = {4};
15 short *f = &d;
16 short i[5] = {3};
17 char j;
18 int *k = &c;
19
20 int
fn1(unsigned p1)21 fn1 (unsigned p1) { return -p1; }
22
23 void
fn2(char p1)24 fn2 (char p1)
25 {
26 a = p1;
27 e[0];
28 }
29
30 short
fn3()31 fn3 ()
32 {
33 *k = 4;
34 return *f;
35 }
36
37 int
main()38 main ()
39 {
40
41 unsigned m;
42 short *n = &i[4];
43
44 m = fn1 ((h && j) <= b.f5);
45 l = m > g.f3;
46 *n = 3;
47 fn2 (b.f2 >> 15);
48 if ((a & 0xff) != 0xff)
49 abort ();
50
51 return 0;
52 }
53