|  | // RUN: %clang_cc1 -fsyntax-only -verify -std=c++1z %s | 
|  |  | 
|  | namespace [[deprecated]] {}  // expected-warning {{'deprecated' attribute on anonymous namespace ignored}} | 
|  |  | 
|  | namespace [[deprecated]] N { // expected-note 4{{'N' has been explicitly marked deprecated here}} | 
|  | int X; | 
|  | int Y = X; // Ok | 
|  | int f(); | 
|  | } | 
|  |  | 
|  | int N::f() { // Ok | 
|  | return Y; // Ok | 
|  | } | 
|  |  | 
|  | void f() { | 
|  | int Y = N::f(); // expected-warning {{'N' is deprecated}} | 
|  | using N::X; // expected-warning {{'N' is deprecated}} | 
|  | int Z = X; //Ok | 
|  | } | 
|  |  | 
|  | void g() { | 
|  | using namespace N; // expected-warning {{'N' is deprecated}} | 
|  | int Z = Y; // Ok | 
|  | } | 
|  |  | 
|  | namespace M = N; // expected-warning {{'N' is deprecated}} | 
|  |  | 
|  | // Shouldn't diag: | 
|  | [[nodiscard, deprecated("")]] int PR37935(); |