libcxx initial import
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103490 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
290
test/language.support/cstdint/cstdint.syn/cstdint.pass.cpp
Normal file
290
test/language.support/cstdint/cstdint.syn/cstdint.pass.cpp
Normal file
@@ -0,0 +1,290 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test <cstdint>
|
||||
|
||||
#include <cstdint>
|
||||
#include <csignal>
|
||||
#include <cwctype>
|
||||
#include <climits>
|
||||
#include <type_traits>
|
||||
#include <limits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
// typedef std::int8_t
|
||||
static_assert(sizeof(std::int8_t)*CHAR_BIT == 8,
|
||||
"sizeof(std::int8_t)*CHAR_BIT == 8");
|
||||
static_assert(std::is_signed<std::int8_t>::value,
|
||||
"std::is_signed<std::int8_t>::value");
|
||||
// typedef std::int16_t
|
||||
static_assert(sizeof(std::int16_t)*CHAR_BIT == 16,
|
||||
"sizeof(std::int16_t)*CHAR_BIT == 16");
|
||||
static_assert(std::is_signed<std::int16_t>::value,
|
||||
"std::is_signed<std::int16_t>::value");
|
||||
// typedef std::int32_t
|
||||
static_assert(sizeof(std::int32_t)*CHAR_BIT == 32,
|
||||
"sizeof(std::int32_t)*CHAR_BIT == 32");
|
||||
static_assert(std::is_signed<std::int32_t>::value,
|
||||
"std::is_signed<std::int32_t>::value");
|
||||
// typedef std::int64_t
|
||||
static_assert(sizeof(std::int64_t)*CHAR_BIT == 64,
|
||||
"sizeof(std::int64_t)*CHAR_BIT == 64");
|
||||
static_assert(std::is_signed<std::int64_t>::value,
|
||||
"std::is_signed<std::int64_t>::value");
|
||||
|
||||
// typedef std::uint8_t
|
||||
static_assert(sizeof(std::uint8_t)*CHAR_BIT == 8,
|
||||
"sizeof(std::uint8_t)*CHAR_BIT == 8");
|
||||
static_assert(std::is_unsigned<std::uint8_t>::value,
|
||||
"std::is_unsigned<std::uint8_t>::value");
|
||||
// typedef std::uint16_t
|
||||
static_assert(sizeof(std::uint16_t)*CHAR_BIT == 16,
|
||||
"sizeof(std::uint16_t)*CHAR_BIT == 16");
|
||||
static_assert(std::is_unsigned<std::uint16_t>::value,
|
||||
"std::is_unsigned<std::uint16_t>::value");
|
||||
// typedef std::uint32_t
|
||||
static_assert(sizeof(std::uint32_t)*CHAR_BIT == 32,
|
||||
"sizeof(std::uint32_t)*CHAR_BIT == 32");
|
||||
static_assert(std::is_unsigned<std::uint32_t>::value,
|
||||
"std::is_unsigned<std::uint32_t>::value");
|
||||
// typedef std::uint64_t
|
||||
static_assert(sizeof(std::uint64_t)*CHAR_BIT == 64,
|
||||
"sizeof(std::uint64_t)*CHAR_BIT == 64");
|
||||
static_assert(std::is_unsigned<std::uint64_t>::value,
|
||||
"std::is_unsigned<std::uint64_t>::value");
|
||||
|
||||
// typedef std::int_least8_t
|
||||
static_assert(sizeof(std::int_least8_t)*CHAR_BIT >= 8,
|
||||
"sizeof(std::int_least8_t)*CHAR_BIT >= 8");
|
||||
static_assert(std::is_signed<std::int_least8_t>::value,
|
||||
"std::is_signed<std::int_least8_t>::value");
|
||||
// typedef std::int_least16_t
|
||||
static_assert(sizeof(std::int_least16_t)*CHAR_BIT >= 16,
|
||||
"sizeof(std::int_least16_t)*CHAR_BIT >= 16");
|
||||
static_assert(std::is_signed<std::int_least16_t>::value,
|
||||
"std::is_signed<std::int_least16_t>::value");
|
||||
// typedef std::int_least32_t
|
||||
static_assert(sizeof(std::int_least32_t)*CHAR_BIT >= 32,
|
||||
"sizeof(std::int_least32_t)*CHAR_BIT >= 32");
|
||||
static_assert(std::is_signed<std::int_least32_t>::value,
|
||||
"std::is_signed<std::int_least32_t>::value");
|
||||
// typedef std::int_least64_t
|
||||
static_assert(sizeof(std::int_least64_t)*CHAR_BIT >= 64,
|
||||
"sizeof(std::int_least64_t)*CHAR_BIT >= 64");
|
||||
static_assert(std::is_signed<std::int_least64_t>::value,
|
||||
"std::is_signed<std::int_least64_t>::value");
|
||||
|
||||
// typedef std::uint_least8_t
|
||||
static_assert(sizeof(std::uint_least8_t)*CHAR_BIT >= 8,
|
||||
"sizeof(std::uint_least8_t)*CHAR_BIT >= 8");
|
||||
static_assert(std::is_unsigned<std::uint_least8_t>::value,
|
||||
"std::is_unsigned<std::uint_least8_t>::value");
|
||||
// typedef std::uint_least16_t
|
||||
static_assert(sizeof(std::uint_least16_t)*CHAR_BIT >= 16,
|
||||
"sizeof(std::uint_least16_t)*CHAR_BIT >= 16");
|
||||
static_assert(std::is_unsigned<std::uint_least16_t>::value,
|
||||
"std::is_unsigned<std::uint_least16_t>::value");
|
||||
// typedef std::uint_least32_t
|
||||
static_assert(sizeof(std::uint_least32_t)*CHAR_BIT >= 32,
|
||||
"sizeof(std::uint_least32_t)*CHAR_BIT >= 32");
|
||||
static_assert(std::is_unsigned<std::uint_least32_t>::value,
|
||||
"std::is_unsigned<std::uint_least32_t>::value");
|
||||
// typedef std::uint_least64_t
|
||||
static_assert(sizeof(std::uint_least64_t)*CHAR_BIT >= 64,
|
||||
"sizeof(std::uint_least64_t)*CHAR_BIT >= 64");
|
||||
static_assert(std::is_unsigned<std::uint_least64_t>::value,
|
||||
"std::is_unsigned<std::uint_least64_t>::value");
|
||||
|
||||
// typedef std::int_fast8_t
|
||||
static_assert(sizeof(std::int_fast8_t)*CHAR_BIT >= 8,
|
||||
"sizeof(std::int_fast8_t)*CHAR_BIT >= 8");
|
||||
static_assert(std::is_signed<std::int_fast8_t>::value,
|
||||
"std::is_signed<std::int_fast8_t>::value");
|
||||
// typedef std::int_fast16_t
|
||||
static_assert(sizeof(std::int_fast16_t)*CHAR_BIT >= 16,
|
||||
"sizeof(std::int_fast16_t)*CHAR_BIT >= 16");
|
||||
static_assert(std::is_signed<std::int_fast16_t>::value,
|
||||
"std::is_signed<std::int_fast16_t>::value");
|
||||
// typedef std::int_fast32_t
|
||||
static_assert(sizeof(std::int_fast32_t)*CHAR_BIT >= 32,
|
||||
"sizeof(std::int_fast32_t)*CHAR_BIT >= 32");
|
||||
static_assert(std::is_signed<std::int_fast32_t>::value,
|
||||
"std::is_signed<std::int_fast32_t>::value");
|
||||
// typedef std::int_fast64_t
|
||||
static_assert(sizeof(std::int_fast64_t)*CHAR_BIT >= 64,
|
||||
"sizeof(std::int_fast64_t)*CHAR_BIT >= 64");
|
||||
static_assert(std::is_signed<std::int_fast64_t>::value,
|
||||
"std::is_signed<std::int_fast64_t>::value");
|
||||
|
||||
// typedef std::uint_fast8_t
|
||||
static_assert(sizeof(std::uint_fast8_t)*CHAR_BIT >= 8,
|
||||
"sizeof(std::uint_fast8_t)*CHAR_BIT >= 8");
|
||||
static_assert(std::is_unsigned<std::uint_fast8_t>::value,
|
||||
"std::is_unsigned<std::uint_fast8_t>::value");
|
||||
// typedef std::uint_fast16_t
|
||||
static_assert(sizeof(std::uint_fast16_t)*CHAR_BIT >= 16,
|
||||
"sizeof(std::uint_fast16_t)*CHAR_BIT >= 16");
|
||||
static_assert(std::is_unsigned<std::uint_fast16_t>::value,
|
||||
"std::is_unsigned<std::uint_fast16_t>::value");
|
||||
// typedef std::uint_fast32_t
|
||||
static_assert(sizeof(std::uint_fast32_t)*CHAR_BIT >= 32,
|
||||
"sizeof(std::uint_fast32_t)*CHAR_BIT >= 32");
|
||||
static_assert(std::is_unsigned<std::uint_fast32_t>::value,
|
||||
"std::is_unsigned<std::uint_fast32_t>::value");
|
||||
// typedef std::uint_fast64_t
|
||||
static_assert(sizeof(std::uint_fast64_t)*CHAR_BIT >= 64,
|
||||
"sizeof(std::uint_fast64_t)*CHAR_BIT >= 64");
|
||||
static_assert(std::is_unsigned<std::uint_fast64_t>::value,
|
||||
"std::is_unsigned<std::uint_fast64_t>::value");
|
||||
|
||||
// typedef std::intptr_t
|
||||
static_assert(sizeof(std::intptr_t) >= sizeof(void*),
|
||||
"sizeof(std::intptr_t) >= sizeof(void*)");
|
||||
static_assert(std::is_signed<std::intptr_t>::value,
|
||||
"std::is_signed<std::intptr_t>::value");
|
||||
// typedef std::uintptr_t
|
||||
static_assert(sizeof(std::uintptr_t) >= sizeof(void*),
|
||||
"sizeof(std::uintptr_t) >= sizeof(void*)");
|
||||
static_assert(std::is_unsigned<std::uintptr_t>::value,
|
||||
"std::is_unsigned<std::uintptr_t>::value");
|
||||
|
||||
// typedef std::intmax_t
|
||||
static_assert(sizeof(std::intmax_t) >= sizeof(long long),
|
||||
"sizeof(std::intmax_t) >= sizeof(long long)");
|
||||
static_assert(std::is_signed<std::intmax_t>::value,
|
||||
"std::is_signed<std::intmax_t>::value");
|
||||
// typedef std::uintmax_t
|
||||
static_assert(sizeof(std::uintmax_t) >= sizeof(unsigned long long),
|
||||
"sizeof(std::uintmax_t) >= sizeof(unsigned long long)");
|
||||
static_assert(std::is_unsigned<std::uintmax_t>::value,
|
||||
"std::is_unsigned<std::uintmax_t>::value");
|
||||
|
||||
// INTN_MIN
|
||||
static_assert(INT8_MIN == -128, "INT8_MIN == -128");
|
||||
static_assert(INT16_MIN == -32768, "INT16_MIN == -32768");
|
||||
static_assert(INT32_MIN == -2147483648U, "INT32_MIN == -2147483648");
|
||||
static_assert(INT64_MIN == -9223372036854775808ULL, "INT64_MIN == -9223372036854775808LL");
|
||||
|
||||
// INTN_MAX
|
||||
static_assert(INT8_MAX == 127, "INT8_MAX == 127");
|
||||
static_assert(INT16_MAX == 32767, "INT16_MAX == 32767");
|
||||
static_assert(INT32_MAX == 2147483647, "INT32_MAX == 2147483647");
|
||||
static_assert(INT64_MAX == 9223372036854775807LL, "INT64_MAX == 9223372036854775807LL");
|
||||
|
||||
// UINTN_MAX
|
||||
static_assert(UINT8_MAX == 255, "UINT8_MAX == 255");
|
||||
static_assert(UINT16_MAX == 65535, "UINT16_MAX == 65535");
|
||||
static_assert(UINT32_MAX == 4294967295U, "UINT32_MAX == 4294967295");
|
||||
static_assert(UINT64_MAX == 18446744073709551615ULL, "UINT64_MAX == 18446744073709551615ULL");
|
||||
|
||||
// INT_FASTN_MIN
|
||||
static_assert(INT_FAST8_MIN <= -128, "INT_FAST8_MIN <= -128");
|
||||
static_assert(INT_FAST16_MIN <= -32768, "INT_FAST16_MIN <= -32768");
|
||||
static_assert(INT_FAST32_MIN <= -2147483648U, "INT_FAST32_MIN <= -2147483648");
|
||||
static_assert(INT_FAST64_MIN <= -9223372036854775808ULL, "INT_FAST64_MIN <= -9223372036854775808LL");
|
||||
|
||||
// INT_FASTN_MAX
|
||||
static_assert(INT_FAST8_MAX >= 127, "INT_FAST8_MAX >= 127");
|
||||
static_assert(INT_FAST16_MAX >= 32767, "INT_FAST16_MAX >= 32767");
|
||||
static_assert(INT_FAST32_MAX >= 2147483647, "INT_FAST32_MAX >= 2147483647");
|
||||
static_assert(INT_FAST64_MAX >= 9223372036854775807LL, "INT_FAST64_MAX >= 9223372036854775807LL");
|
||||
|
||||
// UINT_FASTN_MAX
|
||||
static_assert(UINT_FAST8_MAX >= 255, "UINT_FAST8_MAX >= 255");
|
||||
static_assert(UINT_FAST16_MAX >= 65535, "UINT_FAST16_MAX >= 65535");
|
||||
static_assert(UINT_FAST32_MAX >= 4294967295U, "UINT_FAST32_MAX >= 4294967295");
|
||||
static_assert(UINT_FAST64_MAX >= 18446744073709551615ULL, "UINT_FAST64_MAX >= 18446744073709551615ULL");
|
||||
|
||||
// INTPTR_MIN
|
||||
assert(INTPTR_MIN == std::numeric_limits<std::intptr_t>::min());
|
||||
|
||||
// INTPTR_MAX
|
||||
assert(INTPTR_MAX == std::numeric_limits<std::intptr_t>::max());
|
||||
|
||||
// UINTPTR_MAX
|
||||
assert(UINTPTR_MAX == std::numeric_limits<std::uintptr_t>::max());
|
||||
|
||||
// INTMAX_MIN
|
||||
assert(INTMAX_MIN == std::numeric_limits<std::intmax_t>::min());
|
||||
|
||||
// INTMAX_MAX
|
||||
assert(INTMAX_MAX == std::numeric_limits<std::intmax_t>::max());
|
||||
|
||||
// UINTMAX_MAX
|
||||
assert(UINTMAX_MAX == std::numeric_limits<std::uintmax_t>::max());
|
||||
|
||||
// PTRDIFF_MIN
|
||||
assert(PTRDIFF_MIN == std::numeric_limits<std::ptrdiff_t>::min());
|
||||
|
||||
// PTRDIFF_MAX
|
||||
assert(PTRDIFF_MAX == std::numeric_limits<std::ptrdiff_t>::max());
|
||||
|
||||
// SIG_ATOMIC_MIN
|
||||
assert(SIG_ATOMIC_MIN == std::numeric_limits<std::sig_atomic_t>::min());
|
||||
|
||||
// SIG_ATOMIC_MAX
|
||||
assert(SIG_ATOMIC_MAX == std::numeric_limits<std::sig_atomic_t>::max());
|
||||
|
||||
// SIZE_MAX
|
||||
assert(SIZE_MAX == std::numeric_limits<std::size_t>::max());
|
||||
|
||||
// WCHAR_MIN
|
||||
assert(WCHAR_MIN == std::numeric_limits<wchar_t>::min());
|
||||
|
||||
// WCHAR_MAX
|
||||
assert(WCHAR_MAX == std::numeric_limits<wchar_t>::max());
|
||||
|
||||
// WINT_MIN
|
||||
assert(WINT_MIN == std::numeric_limits<std::wint_t>::min());
|
||||
|
||||
// WINT_MAX
|
||||
assert(WINT_MAX == std::numeric_limits<std::wint_t>::max());
|
||||
|
||||
#ifndef INT8_C
|
||||
#error INT8_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT16_C
|
||||
#error INT16_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT32_C
|
||||
#error INT32_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT64_C
|
||||
#error INT64_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT8_C
|
||||
#error UINT8_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT16_C
|
||||
#error UINT16_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT32_C
|
||||
#error UINT32_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT64_C
|
||||
#error UINT64_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef INTMAX_C
|
||||
#error INTMAX_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINTMAX_C
|
||||
#error UINTMAX_C not defined
|
||||
#endif
|
||||
}
|
20
test/language.support/cstdint/version.pass.cpp
Normal file
20
test/language.support/cstdint/version.pass.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <cstdint>
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
12
test/language.support/nothing_to_do.pass.cpp
Normal file
12
test/language.support/nothing_to_do.pass.cpp
Normal file
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test bad_alloc
|
||||
|
||||
#include <new>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_base_of<std::exception, std::bad_alloc>::value),
|
||||
"std::is_base_of<std::exception, std::bad_alloc>::value");
|
||||
static_assert(std::is_polymorphic<std::bad_alloc>::value,
|
||||
"std::is_polymorphic<std::bad_alloc>::value");
|
||||
std::bad_alloc b;
|
||||
std::bad_alloc b2 = b;
|
||||
b2 = b;
|
||||
const char* w = b2.what();
|
||||
assert(w);
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test bad_array_new_length
|
||||
|
||||
#include <new>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_base_of<std::bad_alloc, std::bad_array_new_length>::value),
|
||||
"std::is_base_of<std::bad_alloc, std::bad_array_new_length>::value");
|
||||
static_assert(std::is_polymorphic<std::bad_array_new_length>::value,
|
||||
"std::is_polymorphic<std::bad_array_new_length>::value");
|
||||
std::bad_array_new_length b;
|
||||
std::bad_array_new_length b2 = b;
|
||||
b2 = b;
|
||||
const char* w = b2.what();
|
||||
assert(w);
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test new_handler
|
||||
|
||||
#include <new>
|
||||
|
||||
void f() {}
|
||||
|
||||
int main()
|
||||
{
|
||||
std::new_handler p = f;
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test set_new_handler
|
||||
|
||||
#include <new>
|
||||
#include <cassert>
|
||||
|
||||
void f1() {}
|
||||
void f2() {}
|
||||
|
||||
int main()
|
||||
{
|
||||
assert(std::set_new_handler(f1) == 0);
|
||||
assert(std::set_new_handler(f2) == f1);
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new[]
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_handler_called = 0;
|
||||
|
||||
void new_handler()
|
||||
{
|
||||
++new_handler_called;
|
||||
std::set_new_handler(0);
|
||||
}
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_new_handler(new_handler);
|
||||
try
|
||||
{
|
||||
void* vp = operator new[] (std::numeric_limits<std::size_t>::max());
|
||||
assert(false);
|
||||
}
|
||||
catch (std::bad_alloc&)
|
||||
{
|
||||
assert(new_handler_called == 1);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
A* ap = new A[3];
|
||||
assert(ap);
|
||||
assert(A_constructed == 3);
|
||||
delete [] ap;
|
||||
assert(A_constructed == 0);
|
||||
}
|
@@ -0,0 +1,51 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new [] (nothrow)
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_handler_called = 0;
|
||||
|
||||
void new_handler()
|
||||
{
|
||||
++new_handler_called;
|
||||
std::set_new_handler(0);
|
||||
}
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_new_handler(new_handler);
|
||||
try
|
||||
{
|
||||
void* vp = operator new [] (std::numeric_limits<std::size_t>::max(), std::nothrow);
|
||||
assert(new_handler_called == 1);
|
||||
assert(vp == 0);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
A* ap = new(std::nothrow) A[3];
|
||||
assert(ap);
|
||||
assert(A_constructed == 3);
|
||||
delete [] ap;
|
||||
assert(A_constructed == 0);
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new [] nothrow by replacing only operator new
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_called = 0;
|
||||
|
||||
void* operator new(std::size_t s) throw(std::bad_alloc)
|
||||
{
|
||||
++new_called;
|
||||
return std::malloc(s);
|
||||
}
|
||||
|
||||
void operator delete(void* p) throw()
|
||||
{
|
||||
--new_called;
|
||||
std::free(p);
|
||||
}
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
A* ap = new (std::nothrow) A[3];
|
||||
assert(ap);
|
||||
assert(A_constructed == 3);
|
||||
assert(new_called);
|
||||
delete [] ap;
|
||||
assert(A_constructed == 0);
|
||||
assert(!new_called);
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new[] replacement by replacing only operator new
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_called = 0;
|
||||
|
||||
void* operator new(std::size_t s) throw(std::bad_alloc)
|
||||
{
|
||||
++new_called;
|
||||
return std::malloc(s);
|
||||
}
|
||||
|
||||
void operator delete(void* p) throw()
|
||||
{
|
||||
--new_called;
|
||||
std::free(p);
|
||||
}
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
A* ap = new A[3];
|
||||
assert(ap);
|
||||
assert(A_constructed == 3);
|
||||
assert(new_called == 1);
|
||||
delete [] ap;
|
||||
assert(A_constructed == 0);
|
||||
assert(new_called == 0);
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test placement new
|
||||
|
||||
#include <new>
|
||||
#include <cassert>
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
char buf[sizeof(A)];
|
||||
|
||||
A* ap = new(buf) A;
|
||||
assert((char*)ap == buf);
|
||||
assert(A_constructed == 1);
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test placement new array
|
||||
|
||||
#include <new>
|
||||
#include <cassert>
|
||||
|
||||
int A_constructed = 0;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {++A_constructed;}
|
||||
~A() {--A_constructed;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
char buf[3*sizeof(A)];
|
||||
|
||||
A* ap = new(buf) A[3];
|
||||
assert((char*)ap == buf);
|
||||
assert(A_constructed == 3);
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_handler_called = 0;
|
||||
|
||||
void new_handler()
|
||||
{
|
||||
++new_handler_called;
|
||||
std::set_new_handler(0);
|
||||
}
|
||||
|
||||
bool A_constructed = false;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {A_constructed = true;}
|
||||
~A() {A_constructed = false;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_new_handler(new_handler);
|
||||
try
|
||||
{
|
||||
void* vp = operator new (std::numeric_limits<std::size_t>::max());
|
||||
assert(false);
|
||||
}
|
||||
catch (std::bad_alloc&)
|
||||
{
|
||||
assert(new_handler_called == 1);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
A* ap = new A;
|
||||
assert(ap);
|
||||
assert(A_constructed);
|
||||
delete ap;
|
||||
assert(!A_constructed);
|
||||
}
|
@@ -0,0 +1,51 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new (nothrow)
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_handler_called = 0;
|
||||
|
||||
void new_handler()
|
||||
{
|
||||
++new_handler_called;
|
||||
std::set_new_handler(0);
|
||||
}
|
||||
|
||||
bool A_constructed = false;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {A_constructed = true;}
|
||||
~A() {A_constructed = false;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_new_handler(new_handler);
|
||||
try
|
||||
{
|
||||
void* vp = operator new (std::numeric_limits<std::size_t>::max(), std::nothrow);
|
||||
assert(new_handler_called == 1);
|
||||
assert(vp == 0);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
A* ap = new(std::nothrow) A;
|
||||
assert(ap);
|
||||
assert(A_constructed);
|
||||
delete ap;
|
||||
assert(!A_constructed);
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new nothrow by replacing only operator new
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_called = 0;
|
||||
|
||||
void* operator new(std::size_t s) throw(std::bad_alloc)
|
||||
{
|
||||
++new_called;
|
||||
return std::malloc(s);
|
||||
}
|
||||
|
||||
void operator delete(void* p) throw()
|
||||
{
|
||||
--new_called;
|
||||
std::free(p);
|
||||
}
|
||||
|
||||
bool A_constructed = false;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {A_constructed = true;}
|
||||
~A() {A_constructed = false;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
A* ap = new (std::nothrow) A;
|
||||
assert(ap);
|
||||
assert(A_constructed);
|
||||
assert(new_called);
|
||||
delete ap;
|
||||
assert(!A_constructed);
|
||||
assert(!new_called);
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test operator new replacement
|
||||
|
||||
#include <new>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <limits>
|
||||
|
||||
int new_called = 0;
|
||||
|
||||
void* operator new(std::size_t s) throw(std::bad_alloc)
|
||||
{
|
||||
++new_called;
|
||||
return std::malloc(s);
|
||||
}
|
||||
|
||||
void operator delete(void* p) throw()
|
||||
{
|
||||
--new_called;
|
||||
std::free(p);
|
||||
}
|
||||
|
||||
bool A_constructed = false;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() {A_constructed = true;}
|
||||
~A() {A_constructed = false;}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
A* ap = new A;
|
||||
assert(ap);
|
||||
assert(A_constructed);
|
||||
assert(new_called);
|
||||
delete ap;
|
||||
assert(!A_constructed);
|
||||
assert(!new_called);
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
20
test/language.support/support.dynamic/version.pass.cpp
Normal file
20
test/language.support/support.dynamic/version.pass.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <new>
|
||||
|
||||
#include <new>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test set_terminate
|
||||
|
||||
#include <exception>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
|
||||
void f1() {}
|
||||
void f2() {}
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_terminate(f1);
|
||||
assert(std::set_terminate(f2) == f1);
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test terminate_handler
|
||||
|
||||
#include <exception>
|
||||
|
||||
void f() {}
|
||||
|
||||
int main()
|
||||
{
|
||||
std::terminate_handler p = f;
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test terminate
|
||||
|
||||
#include <exception>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
|
||||
void f1()
|
||||
{
|
||||
std::exit(0);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_terminate(f1);
|
||||
std::terminate();
|
||||
assert(false);
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test bad_exception
|
||||
|
||||
#include <exception>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_base_of<std::exception, std::bad_exception>::value),
|
||||
"std::is_base_of<std::exception, std::bad_exception>::value");
|
||||
static_assert(std::is_polymorphic<std::bad_exception>::value,
|
||||
"std::is_polymorphic<std::bad_exception>::value");
|
||||
std::bad_exception b;
|
||||
std::bad_exception b2 = b;
|
||||
b2 = b;
|
||||
const char* w = b2.what();
|
||||
assert(w);
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test set_unexpected
|
||||
|
||||
#include <exception>
|
||||
#include <cassert>
|
||||
|
||||
void f1() {}
|
||||
void f2() {}
|
||||
|
||||
int main()
|
||||
{
|
||||
assert(std::set_unexpected(f1) == std::terminate);
|
||||
assert(std::set_unexpected(f2) == f1);
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test unexpected_handler
|
||||
|
||||
#include <exception>
|
||||
|
||||
void f() {}
|
||||
|
||||
int main()
|
||||
{
|
||||
std::unexpected_handler p = f;
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test unexpected
|
||||
|
||||
#include <exception>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
|
||||
void f1()
|
||||
{
|
||||
std::exit(0);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set_unexpected(f1);
|
||||
std::unexpected();
|
||||
assert(false);
|
||||
}
|
@@ -0,0 +1,25 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test exception
|
||||
|
||||
#include <exception>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert(std::is_polymorphic<std::exception>::value,
|
||||
"std::is_polymorphic<std::exception>::value");
|
||||
std::exception b;
|
||||
std::exception b2 = b;
|
||||
b2 = b;
|
||||
const char* w = b2.what();
|
||||
assert(w);
|
||||
}
|
@@ -0,0 +1,269 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <exception>
|
||||
|
||||
// exception_ptr current_exception();
|
||||
|
||||
#include <exception>
|
||||
#include <cassert>
|
||||
|
||||
struct A
|
||||
{
|
||||
static int constructed;
|
||||
|
||||
A() {++constructed;}
|
||||
~A() {--constructed;}
|
||||
A(const A&) {++constructed;}
|
||||
};
|
||||
|
||||
int A::constructed = 0;
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
std::exception_ptr p = std::current_exception();
|
||||
assert(p == nullptr);
|
||||
}
|
||||
{
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
{
|
||||
std::exception_ptr p2;
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
std::exception_ptr p = std::current_exception();
|
||||
assert(A::constructed == 1);
|
||||
assert(p != nullptr);
|
||||
p2 = std::current_exception();
|
||||
assert(A::constructed == 1);
|
||||
assert(p == p2);
|
||||
}
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
{
|
||||
std::exception_ptr p2;
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (A& a)
|
||||
{
|
||||
std::exception_ptr p = std::current_exception();
|
||||
assert(A::constructed == 1);
|
||||
assert(p != nullptr);
|
||||
p2 = std::current_exception();
|
||||
assert(A::constructed == 1);
|
||||
assert(p == p2);
|
||||
}
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
{
|
||||
std::exception_ptr p2;
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (A a)
|
||||
{
|
||||
std::exception_ptr p = std::current_exception();
|
||||
assert(A::constructed == 2);
|
||||
assert(p != nullptr);
|
||||
p2 = std::current_exception();
|
||||
assert(A::constructed == 2);
|
||||
assert(p == p2);
|
||||
}
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
{
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
throw;
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
{
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
try
|
||||
{
|
||||
std::exception_ptr p = std::current_exception();
|
||||
assert(A::constructed == 1);
|
||||
assert(p != nullptr);
|
||||
throw;
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
{
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
throw;
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
std::exception_ptr p = std::current_exception();
|
||||
assert(A::constructed == 1);
|
||||
assert(p != nullptr);
|
||||
}
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
{
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
throw;
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
std::exception_ptr p = std::current_exception();
|
||||
assert(A::constructed == 1);
|
||||
assert(p != nullptr);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
{
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
throw;
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
std::exception_ptr p = std::current_exception();
|
||||
assert(A::constructed == 0);
|
||||
assert(p == nullptr);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
{
|
||||
std::exception_ptr p;
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 0);
|
||||
throw A();
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
try
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
throw;
|
||||
assert(false);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
p = std::current_exception();
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 1);
|
||||
assert(p != nullptr);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
@@ -0,0 +1,34 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <exception>
|
||||
|
||||
// typedef unspecified exception_ptr;
|
||||
|
||||
// exception_ptr shall satisfy the requirements of NullablePointer.
|
||||
|
||||
#include <exception>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
std::exception_ptr p;
|
||||
assert(p == nullptr);
|
||||
std::exception_ptr p2 = p;
|
||||
assert(nullptr == p);
|
||||
assert(!p);
|
||||
assert(p2 == p);
|
||||
p2 = p;
|
||||
assert(p2 == p);
|
||||
assert(p2 == nullptr);
|
||||
std::exception_ptr p3 = nullptr;
|
||||
assert(p3 == nullptr);
|
||||
p3 = nullptr;
|
||||
assert(p3 == nullptr);
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <exception>
|
||||
|
||||
// template<class E> exception_ptr make_exception_ptr(E e);
|
||||
|
||||
#include <exception>
|
||||
#include <cassert>
|
||||
|
||||
struct A
|
||||
{
|
||||
static int constructed;
|
||||
int data_;
|
||||
|
||||
A(int data = 0) : data_(data) {++constructed;}
|
||||
~A() {--constructed;}
|
||||
A(const A& a) : data_(a.data_) {++constructed;}
|
||||
};
|
||||
|
||||
int A::constructed = 0;
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
std::exception_ptr p = std::make_exception_ptr(A(5));
|
||||
try
|
||||
{
|
||||
std::rethrow_exception(p);
|
||||
assert(false);
|
||||
}
|
||||
catch (const A& a)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
assert(p != nullptr);
|
||||
p = nullptr;
|
||||
assert(p == nullptr);
|
||||
assert(a.data_ == 5);
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <exception>
|
||||
|
||||
// void rethrow_exception [[noreturn]] (exception_ptr p);
|
||||
|
||||
#include <exception>
|
||||
#include <cassert>
|
||||
|
||||
struct A
|
||||
{
|
||||
static int constructed;
|
||||
int data_;
|
||||
|
||||
A(int data = 0) : data_(data) {++constructed;}
|
||||
~A() {--constructed;}
|
||||
A(const A& a) : data_(a.data_) {++constructed;}
|
||||
};
|
||||
|
||||
int A::constructed = 0;
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
std::exception_ptr p;
|
||||
try
|
||||
{
|
||||
throw A(3);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
p = std::current_exception();
|
||||
}
|
||||
try
|
||||
{
|
||||
std::rethrow_exception(p);
|
||||
assert(false);
|
||||
}
|
||||
catch (const A& a)
|
||||
{
|
||||
assert(A::constructed == 1);
|
||||
assert(p != nullptr);
|
||||
p = nullptr;
|
||||
assert(p == nullptr);
|
||||
assert(a.data_ == 3);
|
||||
assert(A::constructed == 1);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
}
|
@@ -0,0 +1,36 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test uncaught_exception
|
||||
|
||||
#include <exception>
|
||||
#include <cassert>
|
||||
|
||||
struct A
|
||||
{
|
||||
~A()
|
||||
{
|
||||
assert(std::uncaught_exception());
|
||||
}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
try
|
||||
{
|
||||
A a;
|
||||
assert(!std::uncaught_exception());
|
||||
throw 1;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
assert(!std::uncaught_exception());
|
||||
}
|
||||
assert(!std::uncaught_exception());
|
||||
}
|
20
test/language.support/support.exception/version.pass.cpp
Normal file
20
test/language.support/support.exception/version.pass.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <exception>
|
||||
|
||||
#include <exception>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
12
test/language.support/support.general/nothing_to_do.pass.cpp
Normal file
12
test/language.support/support.general/nothing_to_do.pass.cpp
Normal file
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,38 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// template<class E> class initializer_list;
|
||||
|
||||
// const E* begin() const;
|
||||
// const E* end() const;
|
||||
// size_t size() const;
|
||||
|
||||
#include <initializer_list>
|
||||
#include <cassert>
|
||||
|
||||
struct A
|
||||
{
|
||||
A(std::initializer_list<int> il)
|
||||
{
|
||||
const int* b = il.begin();
|
||||
const int* e = il.end();
|
||||
assert(il.size() == 3);
|
||||
assert(e - b == il.size());
|
||||
assert(*b++ == 3);
|
||||
assert(*b++ == 2);
|
||||
assert(*b++ == 1);
|
||||
}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef _LIBCPP_MOVE
|
||||
A test1 = {3, 2, 1};
|
||||
#endif
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// template<class E> class initializer_list;
|
||||
|
||||
// initializer_list();
|
||||
|
||||
#include <initializer_list>
|
||||
#include <cassert>
|
||||
|
||||
struct A {};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::initializer_list<A> il;
|
||||
assert(il.size() == 0);
|
||||
}
|
35
test/language.support/support.initlist/types.pass.cpp
Normal file
35
test/language.support/support.initlist/types.pass.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// template<class E>
|
||||
// class initializer_list
|
||||
// {
|
||||
// public:
|
||||
// typedef E value_type;
|
||||
// typedef const E& reference;
|
||||
// typedef const E& const_reference;
|
||||
// typedef size_t size_type;
|
||||
//
|
||||
// typedef const E* iterator;
|
||||
// typedef const E* const_iterator;
|
||||
|
||||
#include <initializer_list>
|
||||
#include <type_traits>
|
||||
|
||||
struct A {};
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_same<std::initializer_list<A>::value_type, A>::value), "");
|
||||
static_assert((std::is_same<std::initializer_list<A>::reference, const A&>::value), "");
|
||||
static_assert((std::is_same<std::initializer_list<A>::const_reference, const A&>::value), "");
|
||||
static_assert((std::is_same<std::initializer_list<A>::size_type, std::size_t>::value), "");
|
||||
static_assert((std::is_same<std::initializer_list<A>::iterator, const A*>::value), "");
|
||||
static_assert((std::is_same<std::initializer_list<A>::const_iterator, const A*>::value), "");
|
||||
}
|
20
test/language.support/support.initlist/version.pass.cpp
Normal file
20
test/language.support/support.initlist/version.pass.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <initializer_list>
|
||||
|
||||
#include <initializer_list>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
140
test/language.support/support.limits/c.limits/cfloat.pass.cpp
Normal file
140
test/language.support/support.limits/c.limits/cfloat.pass.cpp
Normal file
@@ -0,0 +1,140 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test cfloat
|
||||
|
||||
#include <cfloat>
|
||||
|
||||
#ifndef FLT_ROUNDS
|
||||
#error FLT_ROUNDS not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_EVAL_METHOD
|
||||
#error FLT_EVAL_METHOD not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_RADIX
|
||||
#error FLT_RADIX not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_MANT_DIG
|
||||
#error FLT_MANT_DIG not defined
|
||||
#endif
|
||||
|
||||
#ifndef DBL_MANT_DIG
|
||||
#error DBL_MANT_DIG not defined
|
||||
#endif
|
||||
|
||||
#ifndef LDBL_MANT_DIG
|
||||
#error LDBL_MANT_DIG not defined
|
||||
#endif
|
||||
|
||||
#ifndef DECIMAL_DIG
|
||||
#error DECIMAL_DIG not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_DIG
|
||||
#error FLT_DIG not defined
|
||||
#endif
|
||||
|
||||
#ifndef DBL_DIG
|
||||
#error DBL_DIG not defined
|
||||
#endif
|
||||
|
||||
#ifndef LDBL_DIG
|
||||
#error LDBL_DIG not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_MIN_EXP
|
||||
#error FLT_MIN_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef DBL_MIN_EXP
|
||||
#error DBL_MIN_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef LDBL_MIN_EXP
|
||||
#error LDBL_MIN_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_MIN_10_EXP
|
||||
#error FLT_MIN_10_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef DBL_MIN_10_EXP
|
||||
#error DBL_MIN_10_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef LDBL_MIN_10_EXP
|
||||
#error LDBL_MIN_10_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_MAX_EXP
|
||||
#error FLT_MAX_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef DBL_MAX_EXP
|
||||
#error DBL_MAX_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef LDBL_MAX_EXP
|
||||
#error LDBL_MAX_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_MAX_10_EXP
|
||||
#error FLT_MAX_10_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef DBL_MAX_10_EXP
|
||||
#error DBL_MAX_10_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef LDBL_MAX_10_EXP
|
||||
#error LDBL_MAX_10_EXP not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_MAX
|
||||
#error FLT_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef DBL_MAX
|
||||
#error DBL_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef LDBL_MAX
|
||||
#error LDBL_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_EPSILON
|
||||
#error FLT_EPSILON not defined
|
||||
#endif
|
||||
|
||||
#ifndef DBL_EPSILON
|
||||
#error DBL_EPSILON not defined
|
||||
#endif
|
||||
|
||||
#ifndef LDBL_EPSILON
|
||||
#error LDBL_EPSILON not defined
|
||||
#endif
|
||||
|
||||
#ifndef FLT_MIN
|
||||
#error FLT_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef DBL_MIN
|
||||
#error DBL_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef LDBL_MIN
|
||||
#error LDBL_MIN not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,92 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test climits
|
||||
|
||||
#include <climits>
|
||||
|
||||
#ifndef CHAR_BIT
|
||||
#error CHAR_BIT not defined
|
||||
#endif
|
||||
|
||||
#ifndef SCHAR_MIN
|
||||
#error SCHAR_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef SCHAR_MAX
|
||||
#error SCHAR_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UCHAR_MAX
|
||||
#error UCHAR_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef CHAR_MIN
|
||||
#error CHAR_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef CHAR_MAX
|
||||
#error CHAR_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef MB_LEN_MAX
|
||||
#error MB_LEN_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef SHRT_MIN
|
||||
#error SHRT_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef SHRT_MAX
|
||||
#error SHRT_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef USHRT_MAX
|
||||
#error USHRT_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_MIN
|
||||
#error INT_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_MAX
|
||||
#error INT_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT_MAX
|
||||
#error UINT_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef LONG_MIN
|
||||
#error LONG_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef LONG_MAX
|
||||
#error LONG_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef ULONG_MAX
|
||||
#error ULONG_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef LLONG_MIN
|
||||
#error LLONG_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef LLONG_MAX
|
||||
#error LLONG_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef ULLONG_MAX
|
||||
#error ULLONG_MAX not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <cfloat>
|
||||
|
||||
#include <cfloat>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <climits>
|
||||
|
||||
#include <climits>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,38 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// float_round_style
|
||||
|
||||
#include <limits>
|
||||
|
||||
typedef char one;
|
||||
struct two {one _[2];};
|
||||
|
||||
one test(std::float_round_style);
|
||||
two test(int);
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert(std::round_indeterminate == -1,
|
||||
"std::round_indeterminate == -1");
|
||||
static_assert(std::round_toward_zero == 0,
|
||||
"std::round_toward_zero == 0");
|
||||
static_assert(std::round_to_nearest == 1,
|
||||
"std::round_to_nearest == 1");
|
||||
static_assert(std::round_toward_infinity == 2,
|
||||
"std::round_toward_infinity == 2");
|
||||
static_assert(std::round_toward_neg_infinity == 3,
|
||||
"std::round_toward_neg_infinity == 3");
|
||||
static_assert(sizeof(test(std::round_to_nearest)) == 1,
|
||||
"sizeof(test(std::round_to_nearest)) == 1");
|
||||
static_assert(sizeof(test(1)) == 2,
|
||||
"sizeof(test(1)) == 2");
|
||||
}
|
@@ -0,0 +1,67 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// Specializations shall be provided for each arithmetic type, both floating
|
||||
// point and integer, including bool. The member is_specialized shall be
|
||||
// true for all such specializations of numeric_limits.
|
||||
|
||||
// Non-arithmetic standard types, such as complex<T> (26.3.2), shall not
|
||||
// have specializations.
|
||||
|
||||
// From [numeric.limits]:
|
||||
|
||||
// The value of each member of a specialization of numeric_limits on a cv
|
||||
// -qualified type cv T shall be equal to the value of the corresponding
|
||||
// member of the specialization on the unqualified type T.
|
||||
|
||||
// More convenient to test it here.
|
||||
|
||||
#include <limits>
|
||||
#include <complex>
|
||||
|
||||
template <class T>
|
||||
void test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::is_specialized,
|
||||
"std::numeric_limits<T>::is_specialized");
|
||||
static_assert(std::numeric_limits<const T>::is_specialized,
|
||||
"std::numeric_limits<const T>::is_specialized");
|
||||
static_assert(std::numeric_limits<volatile T>::is_specialized,
|
||||
"std::numeric_limits<volatile T>::is_specialized");
|
||||
static_assert(std::numeric_limits<const volatile T>::is_specialized,
|
||||
"std::numeric_limits<const volatile T>::is_specialized");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>();
|
||||
test<char>();
|
||||
test<wchar_t>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>();
|
||||
test<char32_t>();
|
||||
#endif
|
||||
test<signed char>();
|
||||
test<unsigned char>();
|
||||
test<signed short>();
|
||||
test<unsigned short>();
|
||||
test<signed int>();
|
||||
test<unsigned int>();
|
||||
test<signed long>();
|
||||
test<unsigned long>();
|
||||
test<signed long long>();
|
||||
test<unsigned long long>();
|
||||
test<float>();
|
||||
test<double>();
|
||||
test<long double>();
|
||||
static_assert(!std::numeric_limits<std::complex<double> >::is_specialized,
|
||||
"!std::numeric_limits<std::complex<double> >::is_specialized");
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// denorm_min()
|
||||
|
||||
#include <limits>
|
||||
#include <cassert>
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test(T expected)
|
||||
{
|
||||
assert(std::numeric_limits<T>::denorm_min() == expected);
|
||||
assert(std::numeric_limits<const T>::denorm_min() == expected);
|
||||
assert(std::numeric_limits<volatile T>::denorm_min() == expected);
|
||||
assert(std::numeric_limits<const volatile T>::denorm_min() == expected);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>(false);
|
||||
test<char>(0);
|
||||
test<signed char>(0);
|
||||
test<unsigned char>(0);
|
||||
test<wchar_t>(0);
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>(0);
|
||||
test<char32_t>(0);
|
||||
#endif
|
||||
test<short>(0);
|
||||
test<unsigned short>(0);
|
||||
test<int>(0);
|
||||
test<unsigned int>(0);
|
||||
test<long>(0);
|
||||
test<unsigned long>(0);
|
||||
test<long long>(0);
|
||||
test<unsigned long long>(0);
|
||||
test<float>(__FLT_DENORM_MIN__);
|
||||
test<double>(__DBL_DENORM_MIN__);
|
||||
test<long double>(__LDBL_DENORM_MIN__);
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// digits
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
|
||||
template <class T, int expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::digits == expected, "digits test 1");
|
||||
static_assert(std::numeric_limits<const T>::digits == expected, "digits test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::digits == expected, "digits test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::digits == expected, "digits test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, 1>();
|
||||
test<char, std::numeric_limits<char>::is_signed ? 7 : 8>();
|
||||
test<signed char, 7>();
|
||||
test<unsigned char, 8>();
|
||||
test<wchar_t, std::numeric_limits<wchar_t>::is_signed ? 31 : 32>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, 16>();
|
||||
test<char32_t, 32>();
|
||||
#endif
|
||||
test<short, 15>();
|
||||
test<unsigned short, 16>();
|
||||
test<int, 31>();
|
||||
test<unsigned int, 32>();
|
||||
test<long, sizeof(long) == 4 ? 31 : 63>();
|
||||
test<unsigned long, sizeof(long) == 4 ? 32 : 64>();
|
||||
test<long long, 63>();
|
||||
test<unsigned long long, 64>();
|
||||
test<float, FLT_MANT_DIG>();
|
||||
test<double, DBL_MANT_DIG>();
|
||||
test<long double, LDBL_MANT_DIG>();
|
||||
}
|
@@ -0,0 +1,53 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// digits10
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
|
||||
template <class T, int expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::digits10 == expected, "digits10 test 1");
|
||||
static_assert(std::numeric_limits<T>::is_bounded, "digits10 test 5");
|
||||
static_assert(std::numeric_limits<const T>::digits10 == expected, "digits10 test 2");
|
||||
static_assert(std::numeric_limits<const T>::is_bounded, "digits10 test 6");
|
||||
static_assert(std::numeric_limits<volatile T>::digits10 == expected, "digits10 test 3");
|
||||
static_assert(std::numeric_limits<volatile T>::is_bounded, "digits10 test 7");
|
||||
static_assert(std::numeric_limits<const volatile T>::digits10 == expected, "digits10 test 4");
|
||||
static_assert(std::numeric_limits<const volatile T>::is_bounded, "digits10 test 8");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, 0>();
|
||||
test<char, 2>();
|
||||
test<signed char, 2>();
|
||||
test<unsigned char, 2>();
|
||||
test<wchar_t, 9>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, 4>();
|
||||
test<char32_t, 9>();
|
||||
#endif
|
||||
test<short, 4>();
|
||||
test<unsigned short, 4>();
|
||||
test<int, 9>();
|
||||
test<unsigned int, 9>();
|
||||
test<long, sizeof(long) == 4 ? 9 : 18>();
|
||||
test<unsigned long, sizeof(long) == 4 ? 9 : 19>();
|
||||
test<long long, 18>();
|
||||
test<unsigned long long, 19>();
|
||||
test<float, FLT_DIG>();
|
||||
test<double, DBL_DIG>();
|
||||
test<long double, LDBL_DIG>();
|
||||
}
|
@@ -0,0 +1,50 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// epsilon()
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
#include <cassert>
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test(T expected)
|
||||
{
|
||||
assert(std::numeric_limits<T>::epsilon() == expected);
|
||||
assert(std::numeric_limits<const T>::epsilon() == expected);
|
||||
assert(std::numeric_limits<volatile T>::epsilon() == expected);
|
||||
assert(std::numeric_limits<const volatile T>::epsilon() == expected);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>(false);
|
||||
test<char>(0);
|
||||
test<signed char>(0);
|
||||
test<unsigned char>(0);
|
||||
test<wchar_t>(0);
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>(0);
|
||||
test<char32_t>(0);
|
||||
#endif
|
||||
test<short>(0);
|
||||
test<unsigned short>(0);
|
||||
test<int>(0);
|
||||
test<unsigned int>(0);
|
||||
test<long>(0);
|
||||
test<unsigned long>(0);
|
||||
test<long long>(0);
|
||||
test<unsigned long long>(0);
|
||||
test<float>(FLT_EPSILON);
|
||||
test<double>(DBL_EPSILON);
|
||||
test<long double>(LDBL_EPSILON);
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// has_denorm
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, std::float_denorm_style expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::has_denorm == expected, "has_denorm test 1");
|
||||
static_assert(std::numeric_limits<const T>::has_denorm == expected, "has_denorm test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::has_denorm == expected, "has_denorm test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::has_denorm == expected, "has_denorm test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, std::denorm_absent>();
|
||||
test<char, std::denorm_absent>();
|
||||
test<signed char, std::denorm_absent>();
|
||||
test<unsigned char, std::denorm_absent>();
|
||||
test<wchar_t, std::denorm_absent>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, std::denorm_absent>();
|
||||
test<char32_t, std::denorm_absent>();
|
||||
#endif
|
||||
test<short, std::denorm_absent>();
|
||||
test<unsigned short, std::denorm_absent>();
|
||||
test<int, std::denorm_absent>();
|
||||
test<unsigned int, std::denorm_absent>();
|
||||
test<long, std::denorm_absent>();
|
||||
test<unsigned long, std::denorm_absent>();
|
||||
test<long long, std::denorm_absent>();
|
||||
test<unsigned long long, std::denorm_absent>();
|
||||
test<float, std::denorm_present>();
|
||||
test<double, std::denorm_present>();
|
||||
test<long double, std::denorm_present>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// has_denorm_loss
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::has_denorm_loss == expected, "has_denorm_loss test 1");
|
||||
static_assert(std::numeric_limits<const T>::has_denorm_loss == expected, "has_denorm_loss test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::has_denorm_loss == expected, "has_denorm_loss test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::has_denorm_loss == expected, "has_denorm_loss test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, false>();
|
||||
test<char, false>();
|
||||
test<signed char, false>();
|
||||
test<unsigned char, false>();
|
||||
test<wchar_t, false>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, false>();
|
||||
test<char32_t, false>();
|
||||
#endif
|
||||
test<short, false>();
|
||||
test<unsigned short, false>();
|
||||
test<int, false>();
|
||||
test<unsigned int, false>();
|
||||
test<long, false>();
|
||||
test<unsigned long, false>();
|
||||
test<long long, false>();
|
||||
test<unsigned long long, false>();
|
||||
test<float, false>();
|
||||
test<double, false>();
|
||||
test<long double, false>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// has_infinity
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::has_infinity == expected, "has_infinity test 1");
|
||||
static_assert(std::numeric_limits<const T>::has_infinity == expected, "has_infinity test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::has_infinity == expected, "has_infinity test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::has_infinity == expected, "has_infinity test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, false>();
|
||||
test<char, false>();
|
||||
test<signed char, false>();
|
||||
test<unsigned char, false>();
|
||||
test<wchar_t, false>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, false>();
|
||||
test<char32_t, false>();
|
||||
#endif
|
||||
test<short, false>();
|
||||
test<unsigned short, false>();
|
||||
test<int, false>();
|
||||
test<unsigned int, false>();
|
||||
test<long, false>();
|
||||
test<unsigned long, false>();
|
||||
test<long long, false>();
|
||||
test<unsigned long long, false>();
|
||||
test<float, true>();
|
||||
test<double, true>();
|
||||
test<long double, true>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// has_quiet_NaN
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::has_quiet_NaN == expected, "has_quiet_NaN test 1");
|
||||
static_assert(std::numeric_limits<const T>::has_quiet_NaN == expected, "has_quiet_NaN test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::has_quiet_NaN == expected, "has_quiet_NaN test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::has_quiet_NaN == expected, "has_quiet_NaN test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, false>();
|
||||
test<char, false>();
|
||||
test<signed char, false>();
|
||||
test<unsigned char, false>();
|
||||
test<wchar_t, false>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, false>();
|
||||
test<char32_t, false>();
|
||||
#endif
|
||||
test<short, false>();
|
||||
test<unsigned short, false>();
|
||||
test<int, false>();
|
||||
test<unsigned int, false>();
|
||||
test<long, false>();
|
||||
test<unsigned long, false>();
|
||||
test<long long, false>();
|
||||
test<unsigned long long, false>();
|
||||
test<float, true>();
|
||||
test<double, true>();
|
||||
test<long double, true>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// has_signaling_NaN
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::has_signaling_NaN == expected, "has_signaling_NaN test 1");
|
||||
static_assert(std::numeric_limits<const T>::has_signaling_NaN == expected, "has_signaling_NaN test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::has_signaling_NaN == expected, "has_signaling_NaN test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::has_signaling_NaN == expected, "has_signaling_NaN test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, false>();
|
||||
test<char, false>();
|
||||
test<signed char, false>();
|
||||
test<unsigned char, false>();
|
||||
test<wchar_t, false>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, false>();
|
||||
test<char32_t, false>();
|
||||
#endif
|
||||
test<short, false>();
|
||||
test<unsigned short, false>();
|
||||
test<int, false>();
|
||||
test<unsigned int, false>();
|
||||
test<long, false>();
|
||||
test<unsigned long, false>();
|
||||
test<long long, false>();
|
||||
test<unsigned long long, false>();
|
||||
test<float, true>();
|
||||
test<double, true>();
|
||||
test<long double, true>();
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// infinity()
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
#include <cassert>
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test(T expected)
|
||||
{
|
||||
assert(std::numeric_limits<T>::infinity() == expected);
|
||||
assert(std::numeric_limits<const T>::infinity() == expected);
|
||||
assert(std::numeric_limits<volatile T>::infinity() == expected);
|
||||
assert(std::numeric_limits<const volatile T>::infinity() == expected);
|
||||
}
|
||||
|
||||
extern float zero;
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>(false);
|
||||
test<char>(0);
|
||||
test<signed char>(0);
|
||||
test<unsigned char>(0);
|
||||
test<wchar_t>(0);
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>(0);
|
||||
test<char32_t>(0);
|
||||
#endif
|
||||
test<short>(0);
|
||||
test<unsigned short>(0);
|
||||
test<int>(0);
|
||||
test<unsigned int>(0);
|
||||
test<long>(0);
|
||||
test<unsigned long>(0);
|
||||
test<long long>(0);
|
||||
test<unsigned long long>(0);
|
||||
test<float>(1./zero);
|
||||
test<double>(1./zero);
|
||||
test<long double>(1./zero);
|
||||
}
|
||||
|
||||
float zero = 0;
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// is_bounded
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::is_bounded == expected, "is_bounded test 1");
|
||||
static_assert(std::numeric_limits<const T>::is_bounded == expected, "is_bounded test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::is_bounded == expected, "is_bounded test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::is_bounded == expected, "is_bounded test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, true>();
|
||||
test<char, true>();
|
||||
test<signed char, true>();
|
||||
test<unsigned char, true>();
|
||||
test<wchar_t, true>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, true>();
|
||||
test<char32_t, true>();
|
||||
#endif
|
||||
test<short, true>();
|
||||
test<unsigned short, true>();
|
||||
test<int, true>();
|
||||
test<unsigned int, true>();
|
||||
test<long, true>();
|
||||
test<unsigned long, true>();
|
||||
test<long long, true>();
|
||||
test<unsigned long long, true>();
|
||||
test<float, true>();
|
||||
test<double, true>();
|
||||
test<long double, true>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// is_exact
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::is_exact == expected, "is_exact test 1");
|
||||
static_assert(std::numeric_limits<const T>::is_exact == expected, "is_exact test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::is_exact == expected, "is_exact test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::is_exact == expected, "is_exact test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, true>();
|
||||
test<char, true>();
|
||||
test<signed char, true>();
|
||||
test<unsigned char, true>();
|
||||
test<wchar_t, true>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, true>();
|
||||
test<char32_t, true>();
|
||||
#endif
|
||||
test<short, true>();
|
||||
test<unsigned short, true>();
|
||||
test<int, true>();
|
||||
test<unsigned int, true>();
|
||||
test<long, true>();
|
||||
test<unsigned long, true>();
|
||||
test<long long, true>();
|
||||
test<unsigned long long, true>();
|
||||
test<float, false>();
|
||||
test<double, false>();
|
||||
test<long double, false>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// is_iec559
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::is_iec559 == expected, "is_iec559 test 1");
|
||||
static_assert(std::numeric_limits<const T>::is_iec559 == expected, "is_iec559 test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::is_iec559 == expected, "is_iec559 test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::is_iec559 == expected, "is_iec559 test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, false>();
|
||||
test<char, false>();
|
||||
test<signed char, false>();
|
||||
test<unsigned char, false>();
|
||||
test<wchar_t, false>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, false>();
|
||||
test<char32_t, false>();
|
||||
#endif
|
||||
test<short, false>();
|
||||
test<unsigned short, false>();
|
||||
test<int, false>();
|
||||
test<unsigned int, false>();
|
||||
test<long, false>();
|
||||
test<unsigned long, false>();
|
||||
test<long long, false>();
|
||||
test<unsigned long long, false>();
|
||||
test<float, true>();
|
||||
test<double, true>();
|
||||
test<long double, true>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// is_integer
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::is_integer == expected, "is_integer test 1");
|
||||
static_assert(std::numeric_limits<const T>::is_integer == expected, "is_integer test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::is_integer == expected, "is_integer test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::is_integer == expected, "is_integer test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, true>();
|
||||
test<char, true>();
|
||||
test<signed char, true>();
|
||||
test<unsigned char, true>();
|
||||
test<wchar_t, true>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, true>();
|
||||
test<char32_t, true>();
|
||||
#endif
|
||||
test<short, true>();
|
||||
test<unsigned short, true>();
|
||||
test<int, true>();
|
||||
test<unsigned int, true>();
|
||||
test<long, true>();
|
||||
test<unsigned long, true>();
|
||||
test<long long, true>();
|
||||
test<unsigned long long, true>();
|
||||
test<float, false>();
|
||||
test<double, false>();
|
||||
test<long double, false>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// is_modulo
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::is_modulo == expected, "is_modulo test 1");
|
||||
static_assert(std::numeric_limits<const T>::is_modulo == expected, "is_modulo test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::is_modulo == expected, "is_modulo test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::is_modulo == expected, "is_modulo test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, false>();
|
||||
test<char, true>();
|
||||
test<signed char, true>();
|
||||
test<unsigned char, true>();
|
||||
test<wchar_t, true>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, true>();
|
||||
test<char32_t, true>();
|
||||
#endif
|
||||
test<short, true>();
|
||||
test<unsigned short, true>();
|
||||
test<int, true>();
|
||||
test<unsigned int, true>();
|
||||
test<long, true>();
|
||||
test<unsigned long, true>();
|
||||
test<long long, true>();
|
||||
test<unsigned long long, true>();
|
||||
test<float, false>();
|
||||
test<double, false>();
|
||||
test<long double, false>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// is_signed
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::is_signed == expected, "is_signed test 1");
|
||||
static_assert(std::numeric_limits<const T>::is_signed == expected, "is_signed test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::is_signed == expected, "is_signed test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::is_signed == expected, "is_signed test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, false>();
|
||||
test<char, char(-1) < char(0)>();
|
||||
test<signed char, true>();
|
||||
test<unsigned char, false>();
|
||||
test<wchar_t, wchar_t(-1) < wchar_t(0)>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, false>();
|
||||
test<char32_t, false>();
|
||||
#endif
|
||||
test<short, true>();
|
||||
test<unsigned short, false>();
|
||||
test<int, true>();
|
||||
test<unsigned int, false>();
|
||||
test<long, true>();
|
||||
test<unsigned long, false>();
|
||||
test<long long, true>();
|
||||
test<unsigned long long, false>();
|
||||
test<float, true>();
|
||||
test<double, true>();
|
||||
test<long double, true>();
|
||||
}
|
@@ -0,0 +1,56 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// lowest()
|
||||
|
||||
#include <limits>
|
||||
#include <climits>
|
||||
#include <cwchar>
|
||||
#include <cfloat>
|
||||
#include <cassert>
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test(T expected)
|
||||
{
|
||||
assert(std::numeric_limits<T>::lowest() == expected);
|
||||
assert(std::numeric_limits<T>::is_bounded);
|
||||
assert(std::numeric_limits<const T>::lowest() == expected);
|
||||
assert(std::numeric_limits<const T>::is_bounded);
|
||||
assert(std::numeric_limits<volatile T>::lowest() == expected);
|
||||
assert(std::numeric_limits<volatile T>::is_bounded);
|
||||
assert(std::numeric_limits<const volatile T>::lowest() == expected);
|
||||
assert(std::numeric_limits<const volatile T>::is_bounded);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>(false);
|
||||
test<char>(CHAR_MIN);
|
||||
test<signed char>(SCHAR_MIN);
|
||||
test<unsigned char>(0);
|
||||
test<wchar_t>(WCHAR_MIN);
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>(0);
|
||||
test<char32_t>(0);
|
||||
#endif
|
||||
test<short>(SHRT_MIN);
|
||||
test<unsigned short>(0);
|
||||
test<int>(INT_MIN);
|
||||
test<unsigned int>(0);
|
||||
test<long>(LONG_MIN);
|
||||
test<unsigned long>(0);
|
||||
test<long long>(LLONG_MIN);
|
||||
test<unsigned long long>(0);
|
||||
test<float>(-FLT_MAX);
|
||||
test<double>(-DBL_MAX);
|
||||
test<long double>(-LDBL_MAX);
|
||||
}
|
@@ -0,0 +1,56 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// max()
|
||||
|
||||
#include <limits>
|
||||
#include <climits>
|
||||
#include <cwchar>
|
||||
#include <cfloat>
|
||||
#include <cassert>
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test(T expected)
|
||||
{
|
||||
assert(std::numeric_limits<T>::max() == expected);
|
||||
assert(std::numeric_limits<T>::is_bounded);
|
||||
assert(std::numeric_limits<const T>::max() == expected);
|
||||
assert(std::numeric_limits<const T>::is_bounded);
|
||||
assert(std::numeric_limits<volatile T>::max() == expected);
|
||||
assert(std::numeric_limits<volatile T>::is_bounded);
|
||||
assert(std::numeric_limits<const volatile T>::max() == expected);
|
||||
assert(std::numeric_limits<const volatile T>::is_bounded);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>(true);
|
||||
test<char>(CHAR_MAX);
|
||||
test<signed char>(SCHAR_MAX);
|
||||
test<unsigned char>(UCHAR_MAX);
|
||||
test<wchar_t>(WCHAR_MAX);
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>(USHRT_MAX);
|
||||
test<char32_t>(UINT_MAX);
|
||||
#endif
|
||||
test<short>(SHRT_MAX);
|
||||
test<unsigned short>(USHRT_MAX);
|
||||
test<int>(INT_MAX);
|
||||
test<unsigned int>(UINT_MAX);
|
||||
test<long>(LONG_MAX);
|
||||
test<unsigned long>(ULONG_MAX);
|
||||
test<long long>(LLONG_MAX);
|
||||
test<unsigned long long>(ULLONG_MAX);
|
||||
test<float>(FLT_MAX);
|
||||
test<double>(DBL_MAX);
|
||||
test<long double>(LDBL_MAX);
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// max_digits10
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
|
||||
template <class T, int expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::max_digits10 == expected, "max_digits10 test 1");
|
||||
static_assert(std::numeric_limits<const T>::max_digits10 == expected, "max_digits10 test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::max_digits10 == expected, "max_digits10 test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::max_digits10 == expected, "max_digits10 test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, 0>();
|
||||
test<char, 0>();
|
||||
test<signed char, 0>();
|
||||
test<unsigned char, 0>();
|
||||
test<wchar_t, 0>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, 0>();
|
||||
test<char32_t, 0>();
|
||||
#endif
|
||||
test<short, 0>();
|
||||
test<unsigned short, 0>();
|
||||
test<int, 0>();
|
||||
test<unsigned int, 0>();
|
||||
test<long, 0>();
|
||||
test<unsigned long, 0>();
|
||||
test<long long, 0>();
|
||||
test<unsigned long long, 0>();
|
||||
test<float, 2+(FLT_MANT_DIG * 30103)/100000>();
|
||||
test<double, 2+(DBL_MANT_DIG * 30103)/100000>();
|
||||
test<long double, 2+(LDBL_MANT_DIG * 30103)/100000>();
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// max_exponent
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
|
||||
template <class T, int expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::max_exponent == expected, "max_exponent test 1");
|
||||
static_assert(std::numeric_limits<const T>::max_exponent == expected, "max_exponent test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::max_exponent == expected, "max_exponent test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::max_exponent == expected, "max_exponent test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, 0>();
|
||||
test<char, 0>();
|
||||
test<signed char, 0>();
|
||||
test<unsigned char, 0>();
|
||||
test<wchar_t, 0>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, 0>();
|
||||
test<char32_t, 0>();
|
||||
#endif
|
||||
test<short, 0>();
|
||||
test<unsigned short, 0>();
|
||||
test<int, 0>();
|
||||
test<unsigned int, 0>();
|
||||
test<long, 0>();
|
||||
test<unsigned long, 0>();
|
||||
test<long long, 0>();
|
||||
test<unsigned long long, 0>();
|
||||
test<float, FLT_MAX_EXP>();
|
||||
test<double, DBL_MAX_EXP>();
|
||||
test<long double, LDBL_MAX_EXP>();
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// max_exponent10
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
|
||||
template <class T, int expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::max_exponent10 == expected, "max_exponent10 test 1");
|
||||
static_assert(std::numeric_limits<const T>::max_exponent10 == expected, "max_exponent10 test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::max_exponent10 == expected, "max_exponent10 test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::max_exponent10 == expected, "max_exponent10 test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, 0>();
|
||||
test<char, 0>();
|
||||
test<signed char, 0>();
|
||||
test<unsigned char, 0>();
|
||||
test<wchar_t, 0>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, 0>();
|
||||
test<char32_t, 0>();
|
||||
#endif
|
||||
test<short, 0>();
|
||||
test<unsigned short, 0>();
|
||||
test<int, 0>();
|
||||
test<unsigned int, 0>();
|
||||
test<long, 0>();
|
||||
test<unsigned long, 0>();
|
||||
test<long long, 0>();
|
||||
test<unsigned long long, 0>();
|
||||
test<float, FLT_MAX_10_EXP>();
|
||||
test<double, DBL_MAX_10_EXP>();
|
||||
test<long double, LDBL_MAX_10_EXP>();
|
||||
}
|
@@ -0,0 +1,56 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// min()
|
||||
|
||||
#include <limits>
|
||||
#include <climits>
|
||||
#include <cwchar>
|
||||
#include <cfloat>
|
||||
#include <cassert>
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test(T expected)
|
||||
{
|
||||
assert(std::numeric_limits<T>::min() == expected);
|
||||
assert(std::numeric_limits<T>::is_bounded || !std::numeric_limits<T>::is_signed);
|
||||
assert(std::numeric_limits<const T>::min() == expected);
|
||||
assert(std::numeric_limits<const T>::is_bounded || !std::numeric_limits<const T>::is_signed);
|
||||
assert(std::numeric_limits<volatile T>::min() == expected);
|
||||
assert(std::numeric_limits<volatile T>::is_bounded || !std::numeric_limits<volatile T>::is_signed);
|
||||
assert(std::numeric_limits<const volatile T>::min() == expected);
|
||||
assert(std::numeric_limits<const volatile T>::is_bounded || !std::numeric_limits<const volatile T>::is_signed);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>(false);
|
||||
test<char>(CHAR_MIN);
|
||||
test<signed char>(SCHAR_MIN);
|
||||
test<unsigned char>(0);
|
||||
test<wchar_t>(WCHAR_MIN);
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>(0);
|
||||
test<char32_t>(0);
|
||||
#endif
|
||||
test<short>(SHRT_MIN);
|
||||
test<unsigned short>(0);
|
||||
test<int>(INT_MIN);
|
||||
test<unsigned int>(0);
|
||||
test<long>(LONG_MIN);
|
||||
test<unsigned long>(0);
|
||||
test<long long>(LLONG_MIN);
|
||||
test<unsigned long long>(0);
|
||||
test<float>(FLT_MIN);
|
||||
test<double>(DBL_MIN);
|
||||
test<long double>(LDBL_MIN);
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// min_exponent
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
|
||||
template <class T, int expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::min_exponent == expected, "min_exponent test 1");
|
||||
static_assert(std::numeric_limits<const T>::min_exponent == expected, "min_exponent test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::min_exponent == expected, "min_exponent test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::min_exponent == expected, "min_exponent test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, 0>();
|
||||
test<char, 0>();
|
||||
test<signed char, 0>();
|
||||
test<unsigned char, 0>();
|
||||
test<wchar_t, 0>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, 0>();
|
||||
test<char32_t, 0>();
|
||||
#endif
|
||||
test<short, 0>();
|
||||
test<unsigned short, 0>();
|
||||
test<int, 0>();
|
||||
test<unsigned int, 0>();
|
||||
test<long, 0>();
|
||||
test<unsigned long, 0>();
|
||||
test<long long, 0>();
|
||||
test<unsigned long long, 0>();
|
||||
test<float, FLT_MIN_EXP>();
|
||||
test<double, DBL_MIN_EXP>();
|
||||
test<long double, LDBL_MIN_EXP>();
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// min_exponent10
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
|
||||
template <class T, int expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::min_exponent10 == expected, "min_exponent10 test 1");
|
||||
static_assert(std::numeric_limits<const T>::min_exponent10 == expected, "min_exponent10 test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::min_exponent10 == expected, "min_exponent10 test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::min_exponent10 == expected, "min_exponent10 test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, 0>();
|
||||
test<char, 0>();
|
||||
test<signed char, 0>();
|
||||
test<unsigned char, 0>();
|
||||
test<wchar_t, 0>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, 0>();
|
||||
test<char32_t, 0>();
|
||||
#endif
|
||||
test<short, 0>();
|
||||
test<unsigned short, 0>();
|
||||
test<int, 0>();
|
||||
test<unsigned int, 0>();
|
||||
test<long, 0>();
|
||||
test<unsigned long, 0>();
|
||||
test<long long, 0>();
|
||||
test<unsigned long long, 0>();
|
||||
test<float, FLT_MIN_10_EXP>();
|
||||
test<double, DBL_MIN_10_EXP>();
|
||||
test<long double, LDBL_MIN_10_EXP>();
|
||||
}
|
@@ -0,0 +1,69 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// quiet_NaN()
|
||||
|
||||
#include <limits>
|
||||
#include <cmath>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test_imp(std::true_type)
|
||||
{
|
||||
assert(std::isnan(std::numeric_limits<T>::quiet_NaN()));
|
||||
assert(std::isnan(std::numeric_limits<const T>::quiet_NaN()));
|
||||
assert(std::isnan(std::numeric_limits<volatile T>::quiet_NaN()));
|
||||
assert(std::isnan(std::numeric_limits<const volatile T>::quiet_NaN()));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test_imp(std::false_type)
|
||||
{
|
||||
assert(std::numeric_limits<T>::quiet_NaN() == T());
|
||||
assert(std::numeric_limits<const T>::quiet_NaN() == T());
|
||||
assert(std::numeric_limits<volatile T>::quiet_NaN() == T());
|
||||
assert(std::numeric_limits<const volatile T>::quiet_NaN() == T());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline
|
||||
void
|
||||
test()
|
||||
{
|
||||
test_imp<T>(std::is_floating_point<T>());
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>();
|
||||
test<char>();
|
||||
test<signed char>();
|
||||
test<unsigned char>();
|
||||
test<wchar_t>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>();
|
||||
test<char32_t>();
|
||||
#endif
|
||||
test<short>();
|
||||
test<unsigned short>();
|
||||
test<int>();
|
||||
test<unsigned int>();
|
||||
test<long>();
|
||||
test<unsigned long>();
|
||||
test<long long>();
|
||||
test<unsigned long long>();
|
||||
test<float>();
|
||||
test<double>();
|
||||
test<long double>();
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// radix
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
|
||||
template <class T, int expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::radix == expected, "radix test 1");
|
||||
static_assert(std::numeric_limits<const T>::radix == expected, "radix test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::radix == expected, "radix test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::radix == expected, "radix test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, 2>();
|
||||
test<char, 2>();
|
||||
test<signed char, 2>();
|
||||
test<unsigned char, 2>();
|
||||
test<wchar_t, 2>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, 2>();
|
||||
test<char32_t, 2>();
|
||||
#endif
|
||||
test<short, 2>();
|
||||
test<unsigned short, 2>();
|
||||
test<int, 2>();
|
||||
test<unsigned int, 2>();
|
||||
test<long, 2>();
|
||||
test<unsigned long, 2>();
|
||||
test<long long, 2>();
|
||||
test<unsigned long long, 2>();
|
||||
test<float, FLT_RADIX>();
|
||||
test<double, FLT_RADIX>();
|
||||
test<long double, FLT_RADIX>();
|
||||
}
|
@@ -0,0 +1,50 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// round_error()
|
||||
|
||||
#include <limits>
|
||||
#include <cfloat>
|
||||
#include <cassert>
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test(T expected)
|
||||
{
|
||||
assert(std::numeric_limits<T>::round_error() == expected);
|
||||
assert(std::numeric_limits<const T>::round_error() == expected);
|
||||
assert(std::numeric_limits<volatile T>::round_error() == expected);
|
||||
assert(std::numeric_limits<const volatile T>::round_error() == expected);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>(false);
|
||||
test<char>(0);
|
||||
test<signed char>(0);
|
||||
test<unsigned char>(0);
|
||||
test<wchar_t>(0);
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>(0);
|
||||
test<char32_t>(0);
|
||||
#endif
|
||||
test<short>(0);
|
||||
test<unsigned short>(0);
|
||||
test<int>(0);
|
||||
test<unsigned int>(0);
|
||||
test<long>(0);
|
||||
test<unsigned long>(0);
|
||||
test<long long>(0);
|
||||
test<unsigned long long>(0);
|
||||
test<float>(0.5);
|
||||
test<double>(0.5);
|
||||
test<long double>(0.5);
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// round_style
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, std::float_round_style expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::round_style == expected, "round_style test 1");
|
||||
static_assert(std::numeric_limits<const T>::round_style == expected, "round_style test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::round_style == expected, "round_style test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::round_style == expected, "round_style test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, std::round_toward_zero>();
|
||||
test<char, std::round_toward_zero>();
|
||||
test<signed char, std::round_toward_zero>();
|
||||
test<unsigned char, std::round_toward_zero>();
|
||||
test<wchar_t, std::round_toward_zero>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, std::round_toward_zero>();
|
||||
test<char32_t, std::round_toward_zero>();
|
||||
#endif
|
||||
test<short, std::round_toward_zero>();
|
||||
test<unsigned short, std::round_toward_zero>();
|
||||
test<int, std::round_toward_zero>();
|
||||
test<unsigned int, std::round_toward_zero>();
|
||||
test<long, std::round_toward_zero>();
|
||||
test<unsigned long, std::round_toward_zero>();
|
||||
test<long long, std::round_toward_zero>();
|
||||
test<unsigned long long, std::round_toward_zero>();
|
||||
test<float, std::round_to_nearest>();
|
||||
test<double, std::round_to_nearest>();
|
||||
test<long double, std::round_to_nearest>();
|
||||
}
|
@@ -0,0 +1,69 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// signaling_NaN()
|
||||
|
||||
#include <limits>
|
||||
#include <cmath>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test_imp(std::true_type)
|
||||
{
|
||||
assert(std::isnan(std::numeric_limits<T>::signaling_NaN()));
|
||||
assert(std::isnan(std::numeric_limits<const T>::signaling_NaN()));
|
||||
assert(std::isnan(std::numeric_limits<volatile T>::signaling_NaN()));
|
||||
assert(std::isnan(std::numeric_limits<const volatile T>::signaling_NaN()));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void
|
||||
test_imp(std::false_type)
|
||||
{
|
||||
assert(std::numeric_limits<T>::signaling_NaN() == T());
|
||||
assert(std::numeric_limits<const T>::signaling_NaN() == T());
|
||||
assert(std::numeric_limits<volatile T>::signaling_NaN() == T());
|
||||
assert(std::numeric_limits<const volatile T>::signaling_NaN() == T());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline
|
||||
void
|
||||
test()
|
||||
{
|
||||
test_imp<T>(std::is_floating_point<T>());
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool>();
|
||||
test<char>();
|
||||
test<signed char>();
|
||||
test<unsigned char>();
|
||||
test<wchar_t>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t>();
|
||||
test<char32_t>();
|
||||
#endif
|
||||
test<short>();
|
||||
test<unsigned short>();
|
||||
test<int>();
|
||||
test<unsigned int>();
|
||||
test<long>();
|
||||
test<unsigned long>();
|
||||
test<long long>();
|
||||
test<unsigned long long>();
|
||||
test<float>();
|
||||
test<double>();
|
||||
test<long double>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// tinyness_before
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::tinyness_before == expected, "tinyness_before test 1");
|
||||
static_assert(std::numeric_limits<const T>::tinyness_before == expected, "tinyness_before test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::tinyness_before == expected, "tinyness_before test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::tinyness_before == expected, "tinyness_before test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, false>();
|
||||
test<char, false>();
|
||||
test<signed char, false>();
|
||||
test<unsigned char, false>();
|
||||
test<wchar_t, false>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, false>();
|
||||
test<char32_t, false>();
|
||||
#endif
|
||||
test<short, false>();
|
||||
test<unsigned short, false>();
|
||||
test<int, false>();
|
||||
test<unsigned int, false>();
|
||||
test<long, false>();
|
||||
test<unsigned long, false>();
|
||||
test<long long, false>();
|
||||
test<unsigned long long, false>();
|
||||
test<float, false>();
|
||||
test<double, false>();
|
||||
test<long double, false>();
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// traps
|
||||
|
||||
#include <limits>
|
||||
|
||||
template <class T, bool expected>
|
||||
void
|
||||
test()
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::traps == expected, "traps test 1");
|
||||
static_assert(std::numeric_limits<const T>::traps == expected, "traps test 2");
|
||||
static_assert(std::numeric_limits<volatile T>::traps == expected, "traps test 3");
|
||||
static_assert(std::numeric_limits<const volatile T>::traps == expected, "traps test 4");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test<bool, false>();
|
||||
test<char, true>();
|
||||
test<signed char, true>();
|
||||
test<unsigned char, true>();
|
||||
test<wchar_t, true>();
|
||||
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
test<char16_t, true>();
|
||||
test<char32_t, true>();
|
||||
#endif
|
||||
test<short, true>();
|
||||
test<unsigned short, true>();
|
||||
test<int, true>();
|
||||
test<unsigned int, true>();
|
||||
test<long, true>();
|
||||
test<unsigned long, true>();
|
||||
test<long long, true>();
|
||||
test<unsigned long long, true>();
|
||||
test<float, false>();
|
||||
test<double, false>();
|
||||
test<long double, false>();
|
||||
}
|
@@ -0,0 +1,83 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// The default numeric_limits<T> template shall have all members, but with
|
||||
// 0 or false values.
|
||||
|
||||
#include <limits>
|
||||
#include <cassert>
|
||||
|
||||
struct A
|
||||
{
|
||||
A(int i = 0) : data_(i) {}
|
||||
int data_;
|
||||
};
|
||||
|
||||
bool operator == (const A& x, const A& y) {return x.data_ == y.data_;}
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert(std::numeric_limits<A>::is_specialized == false,
|
||||
"std::numeric_limits<A>::is_specialized == false");
|
||||
assert(std::numeric_limits<A>::min() == A());
|
||||
assert(std::numeric_limits<A>::max() == A());
|
||||
assert(std::numeric_limits<A>::lowest() == A());
|
||||
static_assert(std::numeric_limits<A>::digits == 0,
|
||||
"std::numeric_limits<A>::digits == 0");
|
||||
static_assert(std::numeric_limits<A>::digits10 == 0,
|
||||
"std::numeric_limits<A>::digits10 == 0");
|
||||
static_assert(std::numeric_limits<A>::max_digits10 == 0,
|
||||
"std::numeric_limits<A>::max_digits10 == 0");
|
||||
static_assert(std::numeric_limits<A>::is_signed == false,
|
||||
"std::numeric_limits<A>::is_signed == false");
|
||||
static_assert(std::numeric_limits<A>::is_integer == false,
|
||||
"std::numeric_limits<A>::is_integer == false");
|
||||
static_assert(std::numeric_limits<A>::is_exact == false,
|
||||
"std::numeric_limits<A>::is_exact == false");
|
||||
static_assert(std::numeric_limits<A>::radix == 0,
|
||||
"std::numeric_limits<A>::radix == 0");
|
||||
assert(std::numeric_limits<A>::epsilon() == A());
|
||||
assert(std::numeric_limits<A>::round_error() == A());
|
||||
static_assert(std::numeric_limits<A>::min_exponent == 0,
|
||||
"std::numeric_limits<A>::min_exponent == 0");
|
||||
static_assert(std::numeric_limits<A>::min_exponent10 == 0,
|
||||
"std::numeric_limits<A>::min_exponent10 == 0");
|
||||
static_assert(std::numeric_limits<A>::max_exponent == 0,
|
||||
"std::numeric_limits<A>::max_exponent == 0");
|
||||
static_assert(std::numeric_limits<A>::max_exponent10 == 0,
|
||||
"std::numeric_limits<A>::max_exponent10 == 0");
|
||||
static_assert(std::numeric_limits<A>::has_infinity == false,
|
||||
"std::numeric_limits<A>::has_infinity == false");
|
||||
static_assert(std::numeric_limits<A>::has_quiet_NaN == false,
|
||||
"std::numeric_limits<A>::has_quiet_NaN == false");
|
||||
static_assert(std::numeric_limits<A>::has_signaling_NaN == false,
|
||||
"std::numeric_limits<A>::has_signaling_NaN == false");
|
||||
static_assert(std::numeric_limits<A>::has_denorm == std::denorm_absent,
|
||||
"std::numeric_limits<A>::has_denorm == std::denorm_absent");
|
||||
static_assert(std::numeric_limits<A>::has_denorm_loss == false,
|
||||
"std::numeric_limits<A>::has_denorm_loss == false");
|
||||
assert(std::numeric_limits<A>::infinity() == A());
|
||||
assert(std::numeric_limits<A>::quiet_NaN() == A());
|
||||
assert(std::numeric_limits<A>::signaling_NaN() == A());
|
||||
assert(std::numeric_limits<A>::denorm_min() == A());
|
||||
static_assert(std::numeric_limits<A>::is_iec559 == false,
|
||||
"std::numeric_limits<A>::is_iec559 == false");
|
||||
static_assert(std::numeric_limits<A>::is_bounded == false,
|
||||
"std::numeric_limits<A>::is_bounded == false");
|
||||
static_assert(std::numeric_limits<A>::is_modulo == false,
|
||||
"std::numeric_limits<A>::is_modulo == false");
|
||||
static_assert(std::numeric_limits<A>::traps == false,
|
||||
"std::numeric_limits<A>::traps == false");
|
||||
static_assert(std::numeric_limits<A>::tinyness_before == false,
|
||||
"std::numeric_limits<A>::tinyness_before == false");
|
||||
static_assert(std::numeric_limits<A>::round_style == std::round_toward_zero,
|
||||
"std::numeric_limits<A>::round_style == std::round_toward_zero");
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,34 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test numeric_limits
|
||||
|
||||
// float_denorm_style
|
||||
|
||||
#include <limits>
|
||||
|
||||
typedef char one;
|
||||
struct two {one _[2];};
|
||||
|
||||
one test(std::float_denorm_style);
|
||||
two test(int);
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert(std::denorm_indeterminate == -1,
|
||||
"std::denorm_indeterminate == -1");
|
||||
static_assert(std::denorm_absent == 0,
|
||||
"std::denorm_absent == 0");
|
||||
static_assert(std::denorm_present == 1,
|
||||
"std::denorm_present == 1");
|
||||
static_assert(sizeof(test(std::denorm_present)) == 1,
|
||||
"sizeof(test(std::denorm_present)) == 1");
|
||||
static_assert(sizeof(test(1)) == 2,
|
||||
"sizeof(test(1)) == 2");
|
||||
}
|
20
test/language.support/support.limits/limits/version.pass.cpp
Normal file
20
test/language.support/support.limits/limits/version.pass.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <limits>
|
||||
|
||||
#include <limits>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
12
test/language.support/support.limits/nothing_to_do.pass.cpp
Normal file
12
test/language.support/support.limits/nothing_to_do.pass.cpp
Normal file
@@ -0,0 +1,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test bad_cast
|
||||
|
||||
#include <typeinfo>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_base_of<std::exception, std::bad_cast>::value),
|
||||
"std::is_base_of<std::exception, std::bad_cast>::value");
|
||||
static_assert(std::is_polymorphic<std::bad_cast>::value,
|
||||
"std::is_polymorphic<std::bad_cast>::value");
|
||||
std::bad_cast b;
|
||||
std::bad_cast b2 = b;
|
||||
b2 = b;
|
||||
const char* w = b2.what();
|
||||
assert(w);
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test bad_typeid
|
||||
|
||||
#include <typeinfo>
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
static_assert((std::is_base_of<std::exception, std::bad_typeid>::value),
|
||||
"std::is_base_of<std::exception, std::bad_typeid>::value");
|
||||
static_assert(std::is_polymorphic<std::bad_typeid>::value,
|
||||
"std::is_polymorphic<std::bad_typeid>::value");
|
||||
std::bad_typeid b;
|
||||
std::bad_typeid b2 = b;
|
||||
b2 = b;
|
||||
const char* w = b2.what();
|
||||
assert(w);
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test type_info
|
||||
|
||||
#include <typeinfo>
|
||||
#include <cstring>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
const std::type_info& t1 = typeid(int);
|
||||
const std::type_info& t2 = typeid(int);
|
||||
assert(t1 == t2);
|
||||
const std::type_info& t3 = typeid(short);
|
||||
assert(t1 != t3);
|
||||
assert(!t1.before(t2));
|
||||
assert(strcmp(t1.name(), t2.name()) == 0);
|
||||
assert(strcmp(t1.name(), t3.name()) != 0);
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test type_info
|
||||
|
||||
#include <typeinfo>
|
||||
#include <cstring>
|
||||
#include <cassert>
|
||||
|
||||
int main()
|
||||
{
|
||||
const std::type_info& t1 = typeid(int);
|
||||
const std::type_info& t2 = typeid(int);
|
||||
const std::type_info& t3 = typeid(short);
|
||||
assert(t1.hash_code() == t2.hash_code());
|
||||
assert(t1.hash_code() != t3.hash_code());
|
||||
}
|
20
test/language.support/support.rtti/version.pass.cpp
Normal file
20
test/language.support/support.rtti/version.pass.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <typeinfo>
|
||||
|
||||
#include <typeinfo>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
24
test/language.support/support.runtime/csetjmp.pass.cpp
Normal file
24
test/language.support/support.runtime/csetjmp.pass.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test <csetjmp>
|
||||
|
||||
#include <csetjmp>
|
||||
#include <type_traits>
|
||||
|
||||
#ifndef setjmp
|
||||
#error setjmp not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
std::jmp_buf jb;
|
||||
static_assert((std::is_same<__typeof__(std::longjmp(jb, 0)), void>::value),
|
||||
"std::is_same<__typeof__(std::longjmp(jb, 0)), void>::value");
|
||||
}
|
57
test/language.support/support.runtime/csignal.pass.cpp
Normal file
57
test/language.support/support.runtime/csignal.pass.cpp
Normal file
@@ -0,0 +1,57 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test <csignal>
|
||||
|
||||
#include <csignal>
|
||||
#include <type_traits>
|
||||
|
||||
#ifndef SIG_DFL
|
||||
#error SIG_DFL not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIG_ERR
|
||||
#error SIG_ERR not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIG_IGN
|
||||
#error SIG_IGN not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIGABRT
|
||||
#error SIGABRT not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIGFPE
|
||||
#error SIGFPE not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIGILL
|
||||
#error SIGILL not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIGINT
|
||||
#error SIGINT not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIGSEGV
|
||||
#error SIGSEGV not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIGTERM
|
||||
#error SIGTERM not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
std::sig_atomic_t sig;
|
||||
typedef void (*func)(int);
|
||||
static_assert((std::is_same<decltype(std::signal(0, (func)0)), func>::value), "");
|
||||
static_assert((std::is_same<decltype(std::raise(0)), int>::value), "");
|
||||
}
|
33
test/language.support/support.runtime/cstdarg.pass.cpp
Normal file
33
test/language.support/support.runtime/cstdarg.pass.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test <cstdarg>
|
||||
|
||||
#include <cstdarg>
|
||||
|
||||
#ifndef va_arg
|
||||
#error va_arg not defined
|
||||
#endif
|
||||
|
||||
#ifndef va_copy
|
||||
#error va_copy not defined
|
||||
#endif
|
||||
|
||||
#ifndef va_end
|
||||
#error va_end not defined
|
||||
#endif
|
||||
|
||||
#ifndef va_start
|
||||
#error va_start not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
std::va_list va;
|
||||
}
|
32
test/language.support/support.runtime/cstdbool.pass.cpp
Normal file
32
test/language.support/support.runtime/cstdbool.pass.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test <cstdbool>
|
||||
|
||||
#include <cstdbool>
|
||||
|
||||
#ifndef __bool_true_false_are_defined
|
||||
#error __bool_true_false_are_defined not defined
|
||||
#endif
|
||||
|
||||
#ifdef bool
|
||||
#error bool should not be defined
|
||||
#endif
|
||||
|
||||
#ifdef true
|
||||
#error true should not be defined
|
||||
#endif
|
||||
|
||||
#ifdef false
|
||||
#error false should not be defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
86
test/language.support/support.runtime/cstdlib.pass.cpp
Normal file
86
test/language.support/support.runtime/cstdlib.pass.cpp
Normal file
@@ -0,0 +1,86 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test <cstdlib>
|
||||
|
||||
#include <cstdlib>
|
||||
#include <type_traits>
|
||||
|
||||
#ifndef EXIT_FAILURE
|
||||
#error EXIT_FAILURE not defined
|
||||
#endif
|
||||
|
||||
#ifndef EXIT_SUCCESS
|
||||
#error EXIT_SUCCESS not defined
|
||||
#endif
|
||||
|
||||
#ifndef MB_CUR_MAX
|
||||
#error MB_CUR_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#error NULL not defined
|
||||
#endif
|
||||
|
||||
#ifndef RAND_MAX
|
||||
#error RAND_MAX not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
std::size_t s = 0;
|
||||
std::div_t d;
|
||||
std::ldiv_t ld;
|
||||
std::lldiv_t lld;
|
||||
char** endptr = 0;
|
||||
static_assert((std::is_same<decltype(std::atof("")), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::atoi("")), int>::value), "");
|
||||
static_assert((std::is_same<decltype(std::atol("")), long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::atoll("")), long long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::getenv("")), char*>::value), "");
|
||||
static_assert((std::is_same<decltype(std::strtod("", endptr)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::strtof("", endptr)), float>::value), "");
|
||||
static_assert((std::is_same<decltype(std::strtold("", endptr)), long double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::strtol("", endptr,0)), long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::strtoll("", endptr,0)), long long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::strtoul("", endptr,0)), unsigned long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::strtoull("", endptr,0)), unsigned long long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::rand()), int>::value), "");
|
||||
static_assert((std::is_same<decltype(std::srand(0)), void>::value), "");
|
||||
static_assert((std::is_same<decltype(std::calloc(0,0)), void*>::value), "");
|
||||
static_assert((std::is_same<decltype(std::free(0)), void>::value), "");
|
||||
static_assert((std::is_same<decltype(std::malloc(0)), void*>::value), "");
|
||||
static_assert((std::is_same<decltype(std::realloc(0,0)), void*>::value), "");
|
||||
static_assert((std::is_same<decltype(std::abort()), void>::value), "");
|
||||
static_assert((std::is_same<decltype(std::atexit(0)), int>::value), "");
|
||||
static_assert((std::is_same<decltype(std::exit(0)), void>::value), "");
|
||||
static_assert((std::is_same<decltype(std::_Exit(0)), void>::value), "");
|
||||
static_assert((std::is_same<decltype(std::getenv("")), char*>::value), "");
|
||||
static_assert((std::is_same<decltype(std::system("")), int>::value), "");
|
||||
static_assert((std::is_same<decltype(std::bsearch(0,0,0,0,0)), void*>::value), "");
|
||||
static_assert((std::is_same<decltype(std::qsort(0,0,0,0)), void>::value), "");
|
||||
static_assert((std::is_same<decltype(std::abs(0)), int>::value), "");
|
||||
static_assert((std::is_same<decltype(std::abs((long)0)), long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::abs((long long)0)), long long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::labs((long)0)), long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::llabs((long long)0)), long long>::value), "");
|
||||
static_assert((std::is_same<decltype(std::div(0,0)), std::div_t>::value), "");
|
||||
static_assert((std::is_same<decltype(std::div(0L,0L)), std::ldiv_t>::value), "");
|
||||
static_assert((std::is_same<decltype(std::div(0LL,0LL)), std::lldiv_t>::value), "");
|
||||
static_assert((std::is_same<decltype(std::ldiv(0L,0L)), std::ldiv_t>::value), "");
|
||||
static_assert((std::is_same<decltype(std::lldiv(0LL,0LL)), std::lldiv_t>::value), "");
|
||||
static_assert((std::is_same<decltype(std::mblen("",0)), int>::value), "");
|
||||
wchar_t* pw = 0;
|
||||
const wchar_t* pwc = 0;
|
||||
char* pc = 0;
|
||||
static_assert((std::is_same<decltype(std::mbtowc(pw,"",0)), int>::value), "");
|
||||
static_assert((std::is_same<decltype(std::wctomb(pc,L' ')), int>::value), "");
|
||||
static_assert((std::is_same<decltype(std::mbstowcs(pw,"",0)), std::size_t>::value), "");
|
||||
static_assert((std::is_same<decltype(std::wcstombs(pc,pwc,0)), std::size_t>::value), "");
|
||||
}
|
40
test/language.support/support.runtime/ctime.pass.cpp
Normal file
40
test/language.support/support.runtime/ctime.pass.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// test <ctime>
|
||||
|
||||
#include <ctime>
|
||||
#include <type_traits>
|
||||
|
||||
#ifndef NULL
|
||||
#error NULL not defined
|
||||
#endif
|
||||
|
||||
#ifndef CLOCKS_PER_SEC
|
||||
#error CLOCKS_PER_SEC not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
std::clock_t c = 0;
|
||||
std::size_t s = 0;
|
||||
std::time_t t = 0;
|
||||
std::tm tm = {0};
|
||||
static_assert((std::is_same<decltype(std::clock()), std::clock_t>::value), "");
|
||||
static_assert((std::is_same<decltype(std::difftime(t,t)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::mktime(&tm)), std::time_t>::value), "");
|
||||
static_assert((std::is_same<decltype(std::time(&t)), std::time_t>::value), "");
|
||||
static_assert((std::is_same<decltype(std::asctime(&tm)), char*>::value), "");
|
||||
static_assert((std::is_same<decltype(std::ctime(&t)), char*>::value), "");
|
||||
static_assert((std::is_same<decltype(std::gmtime(&t)), std::tm*>::value), "");
|
||||
static_assert((std::is_same<decltype(std::localtime(&t)), std::tm*>::value), "");
|
||||
char* c1 = 0;
|
||||
const char* c2 = 0;
|
||||
static_assert((std::is_same<decltype(std::strftime(c1,s,c2,&tm)), std::size_t>::value), "");
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <csetjmp>
|
||||
|
||||
#include <csetjmp>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <csignal>
|
||||
|
||||
#include <csignal>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <cstdarg>
|
||||
|
||||
#include <cstdarg>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <cstdbool>
|
||||
|
||||
#include <cstdbool>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <cstdlib>
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
#ifndef _LIBCPP_VERSION
|
||||
#error _LIBCPP_VERSION not defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user