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 Sambucint N::f() { // Ok 12*0a6a1f1dSLionel Sambuc return Y; // Ok 13*0a6a1f1dSLionel Sambuc } 14*0a6a1f1dSLionel Sambuc f()15*0a6a1f1dSLionel Sambucvoid 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 Sambucvoid 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