2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1z / decomp29.C
blob3404a58f2258754a431ea0e2b9df2b58201d7e40
1 // { dg-do compile { target c++17 } }
2 // { dg-options "-Wunused" }
4 #include <tuple>
6 struct A { int i,j,k; };
8 A f();
9 int p[3];
11 int z;
13 int main()
15   {
16     auto [i,j,k] = f();         // { dg-warning "unused" }
17   }
18   {
19     [[maybe_unused]] auto [i,j,k] = f();
20   }
21   {
22     auto [i,j,k] = f();
23     z = i;
24   }
25   {
26     auto [i,j,k] = f();         // { dg-warning "unused" }
27     i = 5;
28   }
29   {
30     auto [i,j] = std::tuple{1,2}; // { dg-warning "unused" }
31   }
32   {
33     [[maybe_unused]] auto [i,j] = std::tuple{1,2};
34   }
35   {
36     auto [i,j] = std::tuple{1,2};
37     z = i;
38   }
39   {
40     auto [i,j] = std::tuple{1,2};
41     i = 5;
42   }
43   {
44     auto [i,j,k] = p;           // { dg-warning "unused" }
45   }
46   {
47     [[maybe_unused]] auto [i,j,k] = p;
48   }
49   {
50     auto [i,j,k] = p;
51     z = i;
52   }
53   {
54     auto [i,j,k] = p;           // { dg-warning "unused" }
55     i = 5;
56   }