1 // PR c++/88969
2 // { dg-do compile { target c++2a } }
3 
4 #include <new>
5 
6 namespace delete_selection_d {
7   struct B {
8     void operator delete(void*) = delete;
9     void operator delete(B *, std::destroying_delete_t) = delete;  // { dg-message "declared here" }
10   };
delete_B(B * b)11   void delete_B(B *b) { delete b; }  // { dg-error "use of deleted function" }
12 }
13 
14 namespace delete_selection_r {
15   struct B {
16     void operator delete(B *, std::destroying_delete_t) = delete;  // { dg-message "declared here" }
17     void operator delete(void*) = delete;
18   };
delete_B(B * b)19   void delete_B(B *b) { delete b; }  // { dg-error "use of deleted function" }
20 }
21