aboutsummaryrefslogtreecommitdiff
path: root/clang/test/Sema/implicit-special-member-deprecated.cpp
blob: 8e23404552f53256c0e8ac0d820f41ba02d0d28b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// RUN: %clang_cc1 -std=c++20 -Wdeprecated-declarations -verify %s

struct A {
  [[deprecated("use something else")]] int x = 42; // expected-note {{marked deprecated here}}
};

A makeDefaultA() { return {}; }    // ctor is implicit → no warn
A copyA(const A &a) { return a; }  // copy-ctor implicit → no warn

void assignA() {
  A a, b;
  a = b;                           // copy-assign implicit → no warn
}

void useA() {
  A a;
  (void)a.x;                       // expected-warning {{is deprecated}}
}

// Explicitly-defaulted ctor – now silent
struct B {
  [[deprecated]] int y;
  B() = default;                   // no warning under new policy
};