145
|
1 // PR c++/79817 - attribute deprecated on namespace.
|
|
2 // { dg-do compile { target c++11 } }
|
|
3
|
|
4 namespace [[deprecated]] N {
|
|
5 struct S { };
|
|
6 using T = int;
|
|
7 const int value = 42;
|
|
8 int arr[10];
|
|
9 }
|
|
10
|
|
11 namespace [[deprecated]] Y {
|
|
12 int x;
|
|
13 int i = x;
|
|
14 }
|
|
15
|
|
16 namespace [[deprecated]] M {
|
|
17 namespace M2 {
|
|
18 }
|
|
19 }
|
|
20
|
|
21 enum E { F = N::value }; // { dg-warning ".N. is deprecated" }
|
|
22
|
|
23 template<N::T> // { dg-warning ".N. is deprecated" }
|
|
24 struct X { };
|
|
25
|
|
26 N::T foo(); // { dg-warning ".N. is deprecated" }
|
|
27
|
|
28 void
|
|
29 g(N::T p) // { dg-warning ".N. is deprecated" }
|
|
30 {
|
|
31 N::S s; // { dg-warning ".N. is deprecated" }
|
|
32 N::arr[0] = 42; // { dg-warning ".N. is deprecated" }
|
|
33 }
|
|
34
|
|
35 namespace Z = Y; // { dg-warning ".Y. is deprecated" }
|
|
36 namespace Z2 = M::M2; // { dg-warning ".M. is deprecated" }
|
|
37
|
|
38 void
|
|
39 g2 ()
|
|
40 {
|
|
41 using namespace Y; // { dg-warning ".Y. is deprecated" }
|
|
42 using namespace M::M2; // { dg-warning ".M. is deprecated" }
|
|
43 using TT = N::T; // { dg-warning ".N. is deprecated" }
|
|
44 using N::T; // { dg-warning ".N. is deprecated" }
|
|
45 }
|