annotate clang/test/Lexer/char-literal.cpp @ 165:597b3f1c2c93

fix call createTailCallEliminationPass
author anatofuz
date Tue, 24 Mar 2020 15:30:52 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -Wfour-char-constants -fsyntax-only -verify %s
anatofuz
parents:
diff changeset
2 // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c11 -x c -Wfour-char-constants -fsyntax-only -verify %s
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 #ifndef __cplusplus
anatofuz
parents:
diff changeset
5 typedef __WCHAR_TYPE__ wchar_t;
anatofuz
parents:
diff changeset
6 typedef __CHAR16_TYPE__ char16_t;
anatofuz
parents:
diff changeset
7 typedef __CHAR32_TYPE__ char32_t;
anatofuz
parents:
diff changeset
8 #endif
anatofuz
parents:
diff changeset
9
anatofuz
parents:
diff changeset
10 int a = 'ab'; // expected-warning {{multi-character character constant}}
anatofuz
parents:
diff changeset
11 int b = '\xFF\xFF'; // expected-warning {{multi-character character constant}}
anatofuz
parents:
diff changeset
12 int c = 'APPS'; // expected-warning {{multi-character character constant}}
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 char d = '⌘'; // expected-error {{character too large for enclosing character literal type}}
anatofuz
parents:
diff changeset
15 char e = '\u2318'; // expected-error {{character too large for enclosing character literal type}}
anatofuz
parents:
diff changeset
16
anatofuz
parents:
diff changeset
17 #ifdef __cplusplus
anatofuz
parents:
diff changeset
18 auto f = '\xE2\x8C\x98'; // expected-warning {{multi-character character constant}}
anatofuz
parents:
diff changeset
19 #endif
anatofuz
parents:
diff changeset
20
anatofuz
parents:
diff changeset
21 char16_t g = u'ab'; // expected-error {{Unicode character literals may not contain multiple characters}}
anatofuz
parents:
diff changeset
22 char16_t h = u'\U0010FFFD'; // expected-error {{character too large for enclosing character literal type}}
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 wchar_t i = L'ab'; // expected-warning {{extraneous characters in character constant ignored}}
anatofuz
parents:
diff changeset
25 wchar_t j = L'\U0010FFFD';
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 char32_t k = U'\U0010FFFD';
anatofuz
parents:
diff changeset
28
anatofuz
parents:
diff changeset
29 char l = 'Ø'; // expected-error {{character too large for enclosing character literal type}}
anatofuz
parents:
diff changeset
30 char m = '👿'; // expected-error {{character too large for enclosing character literal type}}
anatofuz
parents:
diff changeset
31
anatofuz
parents:
diff changeset
32 char32_t n = U'ab'; // expected-error {{Unicode character literals may not contain multiple characters}}
anatofuz
parents:
diff changeset
33 char16_t o = '👽'; // expected-error {{character too large for enclosing character literal type}}
anatofuz
parents:
diff changeset
34
anatofuz
parents:
diff changeset
35 char16_t p[2] = u"\U0000FFFF";
anatofuz
parents:
diff changeset
36 char16_t q[2] = u"\U00010000";
anatofuz
parents:
diff changeset
37 #ifdef __cplusplus
anatofuz
parents:
diff changeset
38 // expected-error@-2 {{too long}}
anatofuz
parents:
diff changeset
39 #endif