1 /* { dg-do compile } */
2 /* { dg-options "-Wunused" } */
3 
4 void
f1(void)5 f1 (void)
6 {
7   int a;	/* { dg-warning "set but not used" } */
8   int b;
9   int c;
10   c = 1;
11   a = b = c;
12 }
13 
14 void
f2(int x)15 f2 (int x)
16 {
17   int a;	/* { dg-warning "set but not used" } */
18   int b;
19   int c;	/* { dg-warning "set but not used" } */
20   c = (a = x, b = x);
21 }
22 
23 int
f3(int x)24 f3 (int x)
25 {
26   int a;
27   return a = x;
28 }
29 
30 int
f4(int x)31 f4 (int x)
32 {
33   int a;
34   a = x;
35   return a;
36 }
37 
38 void
f5(int x)39 f5 (int x)
40 {
41   int a[2];	/* { dg-warning "set but not used" } */
42   int b;
43   int *c, d[2];
44   c = d;
45   b = x;
46   a[b] = 1;
47   c[b] = 1;
48 }
49 
50 int
f6(int x)51 f6 (int x)
52 {
53   int a[2];
54   int b;
55   b = x;
56   a[b] = 1;
57   return a[b];
58 }
59 
60 void
f7(int x,int * p)61 f7 (int x, int *p)
62 {
63   int *a[2];
64   a[x] = p;
65   a[x][x] = x;
66 }
67 
68 struct S { int i; };
69 
70 void
f8(void)71 f8 (void)
72 {
73   struct S s;	/* { dg-warning "set but not used" } */
74   s.i = 6;
75 }
76 
77 int
f9(void)78 f9 (void)
79 {
80   struct S s;
81   s.i = 6;
82   return s.i;
83 }
84 
85 struct S
f10(void)86 f10 (void)
87 {
88   struct S s;
89   s.i = 6;
90   return s;
91 }
92 
93 extern int foo11 (int *);
94 
95 void
f11(void)96 f11 (void)
97 {
98   int a[2];
99   foo11 (a);
100 }
101 
102 void
f12(void)103 f12 (void)
104 {
105   int a;
106   a = 1;
107   a;	/* { dg-warning "no effect" } */
108 }
109 
110 void
f13(void (* x)(void))111 f13 (void (*x) (void))
112 {
113   void (*a) (void);
114   a = x;
115   a ();
116 }
117 
118 void
f14(void (* x)(void))119 f14 (void (*x) (void))
120 {
121   void (*a) (void);	/* { dg-warning "set but not used" } */
122   a = x;
123 }
124 
125 extern void foo15 (int *);
126 
127 void
f15(void)128 f15 (void)
129 {
130   int a[10];
131   int *b = a + 2;
132   foo15 (b);
133 }
134 
135 extern void foo16 (int **);
136 
137 void
f16(void)138 f16 (void)
139 {
140   int a[10];
141   int *b[] = { a, a + 2 };
142   foo16 (b);
143 }
144 
145 void
f17(int x)146 f17 (int x)
147 {
148   long a;	/* { dg-warning "set but not used" } */
149   int b;
150   a = b = x;
151 }
152 
153 void
f18(int x)154 f18 (int x)
155 {
156   int a;	/* { dg-warning "set but not used" } */
157   int b;
158   a = (char) (b = x);
159 }
160 
161 int
f19(int x,int y,int z)162 f19 (int x, int y, int z)
163 {
164   int a;
165   int b;
166   a = x;
167   b = y;
168   return z ? a : b;
169 }
170 
171 int *
f20(int x)172 f20 (int x)
173 {
174   static int a[] = { 3, 4, 5, 6 };
175   static int b[] = { 4, 5, 6, 7 };
176   static int c[] = { 5, 6, 7, 8 };	/* { dg-warning "set but not used" } */
177   c[1] = 1;
178   return x ? a : b;
179 }
180