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