| //===----------------------------------------------------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // <cctype> |
| |
| #include <cctype> |
| #include <type_traits> |
| #include <cassert> |
| |
| #include "test_macros.h" |
| |
| #ifdef isalnum |
| #error isalnum defined |
| #endif |
| |
| #ifdef isalpha |
| #error isalpha defined |
| #endif |
| |
| #ifdef isblank |
| #error isblank defined |
| #endif |
| |
| #ifdef iscntrl |
| #error iscntrl defined |
| #endif |
| |
| #ifdef isdigit |
| #error isdigit defined |
| #endif |
| |
| #ifdef isgraph |
| #error isgraph defined |
| #endif |
| |
| #ifdef islower |
| #error islower defined |
| #endif |
| |
| #ifdef isprint |
| #error isprint defined |
| #endif |
| |
| #ifdef ispunct |
| #error ispunct defined |
| #endif |
| |
| #ifdef isspace |
| #error isspace defined |
| #endif |
| |
| #ifdef isupper |
| #error isupper defined |
| #endif |
| |
| #ifdef isxdigit |
| #error isxdigit defined |
| #endif |
| |
| #ifdef tolower |
| #error tolower defined |
| #endif |
| |
| #ifdef toupper |
| #error toupper defined |
| #endif |
| |
| int main(int, char**) |
| { |
| |
| ASSERT_SAME_TYPE(int, decltype(std::isalnum(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::isalpha(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::isblank(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::iscntrl(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::isdigit(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::isgraph(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::islower(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::isprint(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::ispunct(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::isspace(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::isupper(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::isxdigit(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::tolower(0))); |
| ASSERT_SAME_TYPE(int, decltype(std::toupper(0))); |
| |
| assert( std::isalnum('a')); |
| assert( std::isalpha('a')); |
| assert( std::isblank(' ')); |
| assert(!std::iscntrl(' ')); |
| assert(!std::isdigit('a')); |
| assert( std::isgraph('a')); |
| assert( std::islower('a')); |
| assert( std::isprint('a')); |
| assert(!std::ispunct('a')); |
| assert(!std::isspace('a')); |
| assert(!std::isupper('a')); |
| assert( std::isxdigit('a')); |
| assert( std::tolower('A') == 'a'); |
| assert( std::toupper('a') == 'A'); |
| |
| return 0; |
| } |