comparison gcc/testsuite/g++.dg/cpp0x/attributes-namespace4.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
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 }