annotate gcc/testsuite/gcc.dg/torture/builtin-wctype-1.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Copyright (C) 2004, 2005 Free Software Foundation.
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 Verify that built-in wctype function attributes are correctly set
kono
parents:
diff changeset
4 by the compiler.
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 Written by Kaveh Ghazi, 2004-03-25. */
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 /* { dg-do link } */
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 /* Use the target type definitions if we can. */
kono
parents:
diff changeset
11 #ifndef __WINT_TYPE__
kono
parents:
diff changeset
12 #define __WINT_TYPE__ int
kono
parents:
diff changeset
13 #endif
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 #ifndef __WCHAR_TYPE__
kono
parents:
diff changeset
16 #define __WCHAR_TYPE__ int
kono
parents:
diff changeset
17 #endif
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 void test(int i)
kono
parents:
diff changeset
20 {
kono
parents:
diff changeset
21 /* All of these ctype functions should be const/pure and thus
kono
parents:
diff changeset
22 eliminated. */
kono
parents:
diff changeset
23 #define TEST_IS_WCTYPE(FN) \
kono
parents:
diff changeset
24 extern int FN(__WINT_TYPE__); \
kono
parents:
diff changeset
25 extern void link_failure_##FN(void); \
kono
parents:
diff changeset
26 if (FN(i) != FN(i)) \
kono
parents:
diff changeset
27 link_failure_##FN()
kono
parents:
diff changeset
28
kono
parents:
diff changeset
29 #define TEST_TO_WCTYPE(FN) \
kono
parents:
diff changeset
30 extern __WINT_TYPE__ FN(__WINT_TYPE__); \
kono
parents:
diff changeset
31 extern void link_failure_##FN(void); \
kono
parents:
diff changeset
32 if (FN(i) != FN(i)) \
kono
parents:
diff changeset
33 link_failure_##FN()
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 #ifdef __OPTIMIZE__
kono
parents:
diff changeset
37 TEST_IS_WCTYPE(iswalnum);
kono
parents:
diff changeset
38 TEST_IS_WCTYPE(iswalpha);
kono
parents:
diff changeset
39 TEST_IS_WCTYPE(iswblank);
kono
parents:
diff changeset
40 TEST_IS_WCTYPE(iswcntrl);
kono
parents:
diff changeset
41 TEST_IS_WCTYPE(iswdigit);
kono
parents:
diff changeset
42 TEST_IS_WCTYPE(iswgraph);
kono
parents:
diff changeset
43 TEST_IS_WCTYPE(iswlower);
kono
parents:
diff changeset
44 TEST_IS_WCTYPE(iswprint);
kono
parents:
diff changeset
45 TEST_IS_WCTYPE(iswpunct);
kono
parents:
diff changeset
46 TEST_IS_WCTYPE(iswspace);
kono
parents:
diff changeset
47 TEST_IS_WCTYPE(iswupper);
kono
parents:
diff changeset
48 TEST_IS_WCTYPE(iswxdigit);
kono
parents:
diff changeset
49 TEST_TO_WCTYPE(towlower);
kono
parents:
diff changeset
50 TEST_TO_WCTYPE(towupper);
kono
parents:
diff changeset
51 #endif /* __OPTIMIZE__ */
kono
parents:
diff changeset
52 }
kono
parents:
diff changeset
53
kono
parents:
diff changeset
54 int main (void)
kono
parents:
diff changeset
55 {
kono
parents:
diff changeset
56 return 0;
kono
parents:
diff changeset
57 }