]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/SemaCXX/implicit-virtual-member-functions.cpp
Update clang to 97654.
[FreeBSD/FreeBSD.git] / test / SemaCXX / implicit-virtual-member-functions.cpp
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 struct A {
3   virtual ~A();
4 };
5
6 struct B : A { // expected-error {{no suitable member 'operator delete' in 'B'}}
7   virtual void f();
8
9   void operator delete (void *, int); // expected-note {{'operator delete' declared here}}
10 };
11
12 void B::f() { // expected-note {{implicit default destructor for 'struct B' first required here}}
13 }
14
15 struct C : A { // expected-error {{no suitable member 'operator delete' in 'C'}}
16   C();
17   void operator delete(void *, int); // expected-note {{'operator delete' declared here}}
18 };
19
20 C::C() { }  // expected-note {{implicit default destructor for 'struct C' first required here}}
21
22 struct D : A { // expected-error {{no suitable member 'operator delete' in 'D'}}
23   void operator delete(void *, int); // expected-note {{'operator delete' declared here}}
24 }; // expected-note {{implicit default destructor for 'struct D' first required here}}
25
26 void f() {
27   new D; 
28 }
29