1a9e65961SEric Fiselier //===----------------------------------------------------------------------===//
2a9e65961SEric Fiselier //
357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6a9e65961SEric Fiselier //
7a9e65961SEric Fiselier //===----------------------------------------------------------------------===//
8a9e65961SEric Fiselier 
931cbe0f2SLouis Dionne // UNSUPPORTED: c++03, c++11, c++14
10a9e65961SEric Fiselier 
112659663eSLouis Dionne // Throwing bad_optional_access is supported starting in macosx10.13
12*c360553cSLouis Dionne // XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
13e9c66ad9SMehdi Amini 
14a9e65961SEric Fiselier // <optional>
15a9e65961SEric Fiselier 
16a9e65961SEric Fiselier // class bad_optional_access is default constructible
17a9e65961SEric Fiselier 
18a9e65961SEric Fiselier #include <optional>
19a9e65961SEric Fiselier #include <type_traits>
20a9e65961SEric Fiselier 
217fc6a556SMarshall Clow #include "test_macros.h"
227fc6a556SMarshall Clow 
main(int,char **)232df59c50SJF Bastien int main(int, char**)
24a9e65961SEric Fiselier {
25a9e65961SEric Fiselier     using std::bad_optional_access;
26a9e65961SEric Fiselier     bad_optional_access ex;
272df59c50SJF Bastien 
282df59c50SJF Bastien   return 0;
29a9e65961SEric Fiselier }
30