//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // type_traits // void_t // UNSUPPORTED: c++03, c++11, c++14 // XFAIL: gcc-5.1, gcc-5.2 #include #include "test_macros.h" template void test1() { ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); } template void test2() { ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); ASSERT_SAME_TYPE(void, std::void_t); } class Class { public: ~Class(); }; int main(int, char**) { ASSERT_SAME_TYPE(void, std::void_t<>); test1(); test1(); test1(); test1(); test1(); test1(); test1(); test2(); test2(); test2(); test2(); test2(); ASSERT_SAME_TYPE(void, std::void_t); return 0; }