/* Copyright (C) 2004 Free Software Foundation. Verify that built-in ctype function attributes are correctly set by the compiler. Written by Kaveh Ghazi, 2004-03-23. */ /* { dg-do link } */ void test(int i) { /* All of these ctype functions should be const/pure and thus eliminated. */ #define TEST_CTYPE(FN) \ extern int FN(int); \ extern void link_failure_##FN(void); \ if (FN(i) != FN(i)) \ link_failure_##FN() #ifdef __OPTIMIZE__ TEST_CTYPE(isalnum); TEST_CTYPE(isalpha); TEST_CTYPE(isascii); TEST_CTYPE(isblank); TEST_CTYPE(iscntrl); TEST_CTYPE(isdigit); TEST_CTYPE(isgraph); TEST_CTYPE(islower); TEST_CTYPE(isprint); TEST_CTYPE(ispunct); TEST_CTYPE(isspace); TEST_CTYPE(isupper); TEST_CTYPE(isxdigit); TEST_CTYPE(toascii); TEST_CTYPE(tolower); TEST_CTYPE(toupper); #endif /* __OPTIMIZE__ */ } int main (void) { return 0; }