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 Dionne std::piecewise_construct_t f() { return {}; } // expected-error 1 {{chosen constructor is explicit in copy-initialization}}
22e16f2cb6SLouis Dionne 
main(int,char **)23e16f2cb6SLouis Dionne int main(int, char**) {
24e16f2cb6SLouis Dionne     return 0;
25e16f2cb6SLouis Dionne }
26