1/* Copyright (C) 2004 Free Software Foundation. 2 3 Verify that built-in ctype function attributes are correctly set by 4 the compiler. 5 6 Written by Kaveh Ghazi, 2004-03-23. */ 7 8/* { dg-do link } */ 9 10 11void test(int i) 12{ 13 /* All of these ctype functions should be const/pure and thus 14 eliminated. */ 15#define TEST_CTYPE(FN) \ 16 extern int FN(int); \ 17 extern void link_failure_##FN(void); \ 18 if (FN(i) != FN(i)) \ 19 link_failure_##FN() 20 21#ifdef __OPTIMIZE__ 22 TEST_CTYPE(isalnum); 23 TEST_CTYPE(isalpha); 24 TEST_CTYPE(isascii); 25 TEST_CTYPE(isblank); 26 TEST_CTYPE(iscntrl); 27 TEST_CTYPE(isdigit); 28 TEST_CTYPE(isgraph); 29 TEST_CTYPE(islower); 30 TEST_CTYPE(isprint); 31 TEST_CTYPE(ispunct); 32 TEST_CTYPE(isspace); 33 TEST_CTYPE(isupper); 34 TEST_CTYPE(isxdigit); 35 TEST_CTYPE(toascii); 36 TEST_CTYPE(tolower); 37 TEST_CTYPE(toupper); 38#endif /* __OPTIMIZE__ */ 39} 40 41int main (void) 42{ 43 return 0; 44} 45