1e16f2cb6SLouis Dionne //===----------------------------------------------------------------------===// 2e16f2cb6SLouis Dionne // 3e16f2cb6SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e16f2cb6SLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 5e16f2cb6SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e16f2cb6SLouis Dionne // 7e16f2cb6SLouis Dionne //===----------------------------------------------------------------------===// 8e16f2cb6SLouis Dionne 9*31cbe0f2SLouis Dionne // UNSUPPORTED: c++03 10e16f2cb6SLouis Dionne 11e16f2cb6SLouis Dionne // <utility> 12e16f2cb6SLouis Dionne 13e16f2cb6SLouis Dionne // struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 14e16f2cb6SLouis Dionne // constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); 15e16f2cb6SLouis Dionne 16e16f2cb6SLouis Dionne // This test checks for LWG 2510. 17e16f2cb6SLouis Dionne 18e16f2cb6SLouis Dionne #include <utility> 19e16f2cb6SLouis Dionne 20e16f2cb6SLouis Dionne f()21e16f2cb6SLouis Dionnestd::piecewise_construct_t f() { return {}; } // expected-error 1 {{chosen constructor is explicit in copy-initialization}} 22e16f2cb6SLouis Dionne main(int,char **)23e16f2cb6SLouis Dionneint main(int, char**) { 24e16f2cb6SLouis Dionne return 0; 25e16f2cb6SLouis Dionne } 26