30 lines
712 B
C++
30 lines
712 B
C++
|
// 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();
|