1// RUN: %clang_cc1 -ast-print %s
2// RUN: %clang_cc1 -x c++ -ast-print %s
3// RUN: %clang_cc1 -x c++ -std=c++11 -ast-print %s
4
5#include <stddef.h>
6
7char    test1(void) { return '\\'; }
8wchar_t test2(void) { return L'\\'; }
9char    test3(void) { return '\''; }
10wchar_t test4(void) { return L'\''; }
11char    test5(void) { return '\a'; }
12wchar_t test6(void) { return L'\a'; }
13char    test7(void) { return '\b'; }
14wchar_t test8(void) { return L'\b'; }
15char    test9(void) { return '\e'; }
16wchar_t test10(void) { return L'\e'; }
17char    test11(void) { return '\f'; }
18wchar_t test12(void) { return L'\f'; }
19char    test13(void) { return '\n'; }
20wchar_t test14(void) { return L'\n'; }
21char    test15(void) { return '\r'; }
22wchar_t test16(void) { return L'\r'; }
23char    test17(void) { return '\t'; }
24wchar_t test18(void) { return L'\t'; }
25char    test19(void) { return '\v'; }
26wchar_t test20(void) { return L'\v'; }
27
28char    test21(void) { return 'c'; }
29wchar_t test22(void) { return L'c'; }
30char    test23(void) { return '\x3'; }
31wchar_t test24(void) { return L'\x3'; }
32
33wchar_t test25(void) { return L'\x333'; }
34
35#if __cplusplus >= 201103L
36char16_t test26(void) { return u'\\'; }
37char16_t test27(void) { return u'\''; }
38char16_t test28(void) { return u'\a'; }
39char16_t test29(void) { return u'\b'; }
40char16_t test30(void) { return u'\e'; }
41char16_t test31(void) { return u'\f'; }
42char16_t test32(void) { return u'\n'; }
43char16_t test33(void) { return u'\r'; }
44char16_t test34(void) { return u'\t'; }
45char16_t test35(void) { return u'\v'; }
46
47char16_t test36(void) { return u'c'; }
48char16_t test37(void) { return u'\x3'; }
49
50char16_t test38(void) { return u'\x333'; }
51
52char32_t test39(void) { return U'\\'; }
53char32_t test40(void) { return U'\''; }
54char32_t test41(void) { return U'\a'; }
55char32_t test42(void) { return U'\b'; }
56char32_t test43(void) { return U'\e'; }
57char32_t test44(void) { return U'\f'; }
58char32_t test45(void) { return U'\n'; }
59char32_t test46(void) { return U'\r'; }
60char32_t test47(void) { return U'\t'; }
61char32_t test48(void) { return U'\v'; }
62
63char32_t test49(void) { return U'c'; }
64char32_t test50(void) { return U'\x3'; }
65
66char32_t test51(void) { return U'\x333'; }
67#endif
68