1*7ea5409eSLouis Dionne //===----------------------------------------------------------------------===// 2*7ea5409eSLouis Dionne // 3*7ea5409eSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*7ea5409eSLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 5*7ea5409eSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*7ea5409eSLouis Dionne // 7*7ea5409eSLouis Dionne //===----------------------------------------------------------------------===// 8*7ea5409eSLouis Dionne 9*7ea5409eSLouis Dionne // <memory> 10*7ea5409eSLouis Dionne 11*7ea5409eSLouis Dionne // unique_ptr 12*7ea5409eSLouis Dionne 13*7ea5409eSLouis Dionne // test op*() 14*7ea5409eSLouis Dionne 15*7ea5409eSLouis Dionne #include <memory> 16*7ea5409eSLouis Dionne #include <cassert> 17*7ea5409eSLouis Dionne main(int,char **)18*7ea5409eSLouis Dionneint main(int, char**) { 19*7ea5409eSLouis Dionne std::unique_ptr<int[]> p(new int(3)); 20*7ea5409eSLouis Dionne const std::unique_ptr<int[]>& cp = p; 21*7ea5409eSLouis Dionne TEST_IGNORE_NODISCARD(*p); // expected-error-re {{indirection requires pointer operand ('std::unique_ptr<int{{[ ]*}}[]>' invalid)}} 22*7ea5409eSLouis Dionne TEST_IGNORE_NODISCARD(*cp); // expected-error-re {{indirection requires pointer operand ('const std::unique_ptr<int{{[ ]*}}[]>' invalid)}} 23*7ea5409eSLouis Dionne 24*7ea5409eSLouis Dionne return 0; 25*7ea5409eSLouis Dionne } 26