1 // { dg-options "-std=c++17 -Wunused" }
2 
3 #include <tuple>
4 
5 struct A { int i,j,k; };
6 
7 A f();
8 int p[3];
9 
10 int z;
11 
main()12 int main()
13 {
14   {
15     auto [i,j,k] = f();		// { dg-warning "unused" }
16   }
17   {
18     [[maybe_unused]] auto [i,j,k] = f();
19   }
20   {
21     auto [i,j,k] = f();
22     z = i;
23   }
24   {
25     auto [i,j,k] = f();		// { dg-warning "unused" }
26     i = 5;
27   }
28   {
29     auto [i,j] = std::tuple{1,2}; // { dg-warning "unused" }
30   }
31   {
32     [[maybe_unused]] auto [i,j] = std::tuple{1,2};
33   }
34   {
35     auto [i,j] = std::tuple{1,2};
36     z = i;
37   }
38   {
39     auto [i,j] = std::tuple{1,2};
40     i = 5;
41   }
42   {
43     auto [i,j,k] = p;		// { dg-warning "unused" }
44   }
45   {
46     [[maybe_unused]] auto [i,j,k] = p;
47   }
48   {
49     auto [i,j,k] = p;
50     z = i;
51   }
52   {
53     auto [i,j,k] = p;		// { dg-warning "unused" }
54     i = 5;
55   }
56 }
57