1*7a6aaf9bSLouis Dionne //===----------------------------------------------------------------------===// 2*7a6aaf9bSLouis Dionne // 3*7a6aaf9bSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*7a6aaf9bSLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 5*7a6aaf9bSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*7a6aaf9bSLouis Dionne // 7*7a6aaf9bSLouis Dionne //===----------------------------------------------------------------------===// 8*7a6aaf9bSLouis Dionne 9*7a6aaf9bSLouis Dionne // <memory> 10*7a6aaf9bSLouis Dionne 11*7a6aaf9bSLouis Dionne // default_delete 12*7a6aaf9bSLouis Dionne 13*7a6aaf9bSLouis Dionne // Test that default_delete's operator() requires a complete type 14*7a6aaf9bSLouis Dionne 15*7a6aaf9bSLouis Dionne #include <memory> 16*7a6aaf9bSLouis Dionne #include <cassert> 17*7a6aaf9bSLouis Dionne 18*7a6aaf9bSLouis Dionne struct A; 19*7a6aaf9bSLouis Dionne main(int,char **)20*7a6aaf9bSLouis Dionneint main(int, char**) 21*7a6aaf9bSLouis Dionne { 22*7a6aaf9bSLouis Dionne std::default_delete<A> d; 23*7a6aaf9bSLouis Dionne A* p = 0; 24*7a6aaf9bSLouis Dionne d(p); 25*7a6aaf9bSLouis Dionne 26*7a6aaf9bSLouis Dionne return 0; 27*7a6aaf9bSLouis Dionne } 28