xref: /minix3/external/bsd/llvm/dist/clang/test/SemaCXX/cxx-deprecated.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -fsyntax-only -verify -std=c++1z %s
2*0a6a1f1dSLionel Sambuc 
3*0a6a1f1dSLionel Sambuc namespace [[deprecated]] {}  // expected-warning {{'deprecated' attribute on anonymous namespace ignored}}
4*0a6a1f1dSLionel Sambuc 
5*0a6a1f1dSLionel Sambuc namespace [[deprecated]] N { // expected-note 4{{'N' has been explicitly marked deprecated here}}
6*0a6a1f1dSLionel Sambuc   int X;
7*0a6a1f1dSLionel Sambuc   int Y = X; // Ok
8*0a6a1f1dSLionel Sambuc   int f();
9*0a6a1f1dSLionel Sambuc }
10*0a6a1f1dSLionel Sambuc 
f()11*0a6a1f1dSLionel Sambuc int N::f() { // Ok
12*0a6a1f1dSLionel Sambuc   return Y; // Ok
13*0a6a1f1dSLionel Sambuc }
14*0a6a1f1dSLionel Sambuc 
f()15*0a6a1f1dSLionel Sambuc void f() {
16*0a6a1f1dSLionel Sambuc   int Y = N::f(); // expected-warning {{'N' is deprecated}}
17*0a6a1f1dSLionel Sambuc   using N::X; // expected-warning {{'N' is deprecated}}
18*0a6a1f1dSLionel Sambuc   int Z = X; //Ok
19*0a6a1f1dSLionel Sambuc }
20*0a6a1f1dSLionel Sambuc 
g()21*0a6a1f1dSLionel Sambuc void g() {
22*0a6a1f1dSLionel Sambuc   using namespace N; // expected-warning {{'N' is deprecated}}
23*0a6a1f1dSLionel Sambuc   int Z = Y; // Ok
24*0a6a1f1dSLionel Sambuc }
25*0a6a1f1dSLionel Sambuc 
26*0a6a1f1dSLionel Sambuc namespace M = N; // expected-warning {{'N' is deprecated}}
27