// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %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(); namespace cxx20_concept { template concept C __attribute__((deprecated)) = true; // #C template // expected-warning@-1 {{'C' is deprecated}} // expected-note@#C {{'C' has been explicitly marked deprecated here}} void f(); namespace GH98164 { template auto b() = delete; // #b decltype(b<0>()) x; // expected-error@-1 {{call to deleted function 'b'}} // expected-note@#b {{candidate function [with $0 = 0] has been explicitly deleted}} } // namespace GH98164 } // namespace cxx20_concept