Home | History | Annotate | Download | only in depr.c.headers
      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // <ctype.h>
     11 
     12 #include <ctype.h>
     13 #include <type_traits>
     14 #include <cassert>
     15 
     16 #ifdef isalnum
     17 #error isalnum defined
     18 #endif
     19 
     20 #ifdef isalpha
     21 #error isalpha defined
     22 #endif
     23 
     24 #ifdef isblank
     25 #error isblank defined
     26 #endif
     27 
     28 #ifdef iscntrl
     29 #error iscntrl defined
     30 #endif
     31 
     32 #ifdef isdigit
     33 #error isdigit defined
     34 #endif
     35 
     36 #ifdef isgraph
     37 #error isgraph defined
     38 #endif
     39 
     40 #ifdef islower
     41 #error islower defined
     42 #endif
     43 
     44 #ifdef isprint
     45 #error isprint defined
     46 #endif
     47 
     48 #ifdef ispunct
     49 #error ispunct defined
     50 #endif
     51 
     52 #ifdef isspace
     53 #error isspace defined
     54 #endif
     55 
     56 #ifdef isupper
     57 #error isupper defined
     58 #endif
     59 
     60 #ifdef isxdigit
     61 #error isxdigit defined
     62 #endif
     63 
     64 #ifdef tolower
     65 #error tolower defined
     66 #endif
     67 
     68 #ifdef toupper
     69 #error toupper defined
     70 #endif
     71 
     72 int main()
     73 {
     74     static_assert((std::is_same<decltype(isalnum(0)), int>::value), "");
     75     static_assert((std::is_same<decltype(isalpha(0)), int>::value), "");
     76     static_assert((std::is_same<decltype(isblank(0)), int>::value), "");
     77     static_assert((std::is_same<decltype(iscntrl(0)), int>::value), "");
     78     static_assert((std::is_same<decltype(isdigit(0)), int>::value), "");
     79     static_assert((std::is_same<decltype(isgraph(0)), int>::value), "");
     80     static_assert((std::is_same<decltype(islower(0)), int>::value), "");
     81     static_assert((std::is_same<decltype(isprint(0)), int>::value), "");
     82     static_assert((std::is_same<decltype(ispunct(0)), int>::value), "");
     83     static_assert((std::is_same<decltype(isspace(0)), int>::value), "");
     84     static_assert((std::is_same<decltype(isupper(0)), int>::value), "");
     85     static_assert((std::is_same<decltype(isxdigit(0)), int>::value), "");
     86     static_assert((std::is_same<decltype(tolower(0)), int>::value), "");
     87     static_assert((std::is_same<decltype(toupper(0)), int>::value), "");
     88 
     89     assert(isalnum('a'));
     90     assert(isalpha('a'));
     91     assert(isblank(' '));
     92     assert(!iscntrl(' '));
     93     assert(!isdigit('a'));
     94     assert(isgraph('a'));
     95     assert(islower('a'));
     96     assert(isprint('a'));
     97     assert(!ispunct('a'));
     98     assert(!isspace('a'));
     99     assert(!isupper('a'));
    100     assert(isxdigit('a'));
    101     assert(tolower('A') == 'a');
    102     assert(toupper('a') == 'A');
    103 }
    104