//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test #include #include #include #include #include #include #include int main() { // typedef int8_t static_assert(sizeof(int8_t)*CHAR_BIT == 8, "sizeof(int8_t)*CHAR_BIT == 8"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef int16_t static_assert(sizeof(int16_t)*CHAR_BIT == 16, "sizeof(int16_t)*CHAR_BIT == 16"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef int32_t static_assert(sizeof(int32_t)*CHAR_BIT == 32, "sizeof(int32_t)*CHAR_BIT == 32"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef int64_t static_assert(sizeof(int64_t)*CHAR_BIT == 64, "sizeof(int64_t)*CHAR_BIT == 64"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef uint8_t static_assert(sizeof(uint8_t)*CHAR_BIT == 8, "sizeof(uint8_t)*CHAR_BIT == 8"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef uint16_t static_assert(sizeof(uint16_t)*CHAR_BIT == 16, "sizeof(uint16_t)*CHAR_BIT == 16"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef uint32_t static_assert(sizeof(uint32_t)*CHAR_BIT == 32, "sizeof(uint32_t)*CHAR_BIT == 32"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef uint64_t static_assert(sizeof(uint64_t)*CHAR_BIT == 64, "sizeof(uint64_t)*CHAR_BIT == 64"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef int_least8_t static_assert(sizeof(int_least8_t)*CHAR_BIT >= 8, "sizeof(int_least8_t)*CHAR_BIT >= 8"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef int_least16_t static_assert(sizeof(int_least16_t)*CHAR_BIT >= 16, "sizeof(int_least16_t)*CHAR_BIT >= 16"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef int_least32_t static_assert(sizeof(int_least32_t)*CHAR_BIT >= 32, "sizeof(int_least32_t)*CHAR_BIT >= 32"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef int_least64_t static_assert(sizeof(int_least64_t)*CHAR_BIT >= 64, "sizeof(int_least64_t)*CHAR_BIT >= 64"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef uint_least8_t static_assert(sizeof(uint_least8_t)*CHAR_BIT >= 8, "sizeof(uint_least8_t)*CHAR_BIT >= 8"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef uint_least16_t static_assert(sizeof(uint_least16_t)*CHAR_BIT >= 16, "sizeof(uint_least16_t)*CHAR_BIT >= 16"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef uint_least32_t static_assert(sizeof(uint_least32_t)*CHAR_BIT >= 32, "sizeof(uint_least32_t)*CHAR_BIT >= 32"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef uint_least64_t static_assert(sizeof(uint_least64_t)*CHAR_BIT >= 64, "sizeof(uint_least64_t)*CHAR_BIT >= 64"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef int_fast8_t static_assert(sizeof(int_fast8_t)*CHAR_BIT >= 8, "sizeof(int_fast8_t)*CHAR_BIT >= 8"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef int_fast16_t static_assert(sizeof(int_fast16_t)*CHAR_BIT >= 16, "sizeof(int_fast16_t)*CHAR_BIT >= 16"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef int_fast32_t static_assert(sizeof(int_fast32_t)*CHAR_BIT >= 32, "sizeof(int_fast32_t)*CHAR_BIT >= 32"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef int_fast64_t static_assert(sizeof(int_fast64_t)*CHAR_BIT >= 64, "sizeof(int_fast64_t)*CHAR_BIT >= 64"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef uint_fast8_t static_assert(sizeof(uint_fast8_t)*CHAR_BIT >= 8, "sizeof(uint_fast8_t)*CHAR_BIT >= 8"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef uint_fast16_t static_assert(sizeof(uint_fast16_t)*CHAR_BIT >= 16, "sizeof(uint_fast16_t)*CHAR_BIT >= 16"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef uint_fast32_t static_assert(sizeof(uint_fast32_t)*CHAR_BIT >= 32, "sizeof(uint_fast32_t)*CHAR_BIT >= 32"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef uint_fast64_t static_assert(sizeof(uint_fast64_t)*CHAR_BIT >= 64, "sizeof(uint_fast64_t)*CHAR_BIT >= 64"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef intptr_t static_assert(sizeof(intptr_t) >= sizeof(void*), "sizeof(intptr_t) >= sizeof(void*)"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef uintptr_t static_assert(sizeof(uintptr_t) >= sizeof(void*), "sizeof(uintptr_t) >= sizeof(void*)"); static_assert(std::is_unsigned::value, "std::is_unsigned::value"); // typedef intmax_t static_assert(sizeof(intmax_t) >= sizeof(long long), "sizeof(intmax_t) >= sizeof(long long)"); static_assert(std::is_signed::value, "std::is_signed::value"); // typedef uintmax_t static_assert(sizeof(uintmax_t) >= sizeof(unsigned long long), "sizeof(uintmax_t) >= sizeof(unsigned long long)"); static_assert(std::is_unsigned::value, "std::is_unsigned::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::min()); // INTPTR_MAX assert(INTPTR_MAX == std::numeric_limits::max()); // UINTPTR_MAX assert(UINTPTR_MAX == std::numeric_limits::max()); // INTMAX_MIN assert(INTMAX_MIN == std::numeric_limits::min()); // INTMAX_MAX assert(INTMAX_MAX == std::numeric_limits::max()); // UINTMAX_MAX assert(UINTMAX_MAX == std::numeric_limits::max()); // PTRDIFF_MIN assert(PTRDIFF_MIN == std::numeric_limits::min()); // PTRDIFF_MAX assert(PTRDIFF_MAX == std::numeric_limits::max()); // SIG_ATOMIC_MIN assert(SIG_ATOMIC_MIN == std::numeric_limits::min()); // SIG_ATOMIC_MAX assert(SIG_ATOMIC_MAX == std::numeric_limits::max()); // SIZE_MAX assert(SIZE_MAX == std::numeric_limits::max()); // WCHAR_MIN assert(WCHAR_MIN == std::numeric_limits::min()); // WCHAR_MAX assert(WCHAR_MAX == std::numeric_limits::max()); // WINT_MIN assert(WINT_MIN == std::numeric_limits::min()); // WINT_MAX assert(WINT_MAX == std::numeric_limits::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 }