xref: /aosp_15_r20/external/clang/test/Lexer/char-literal-encoding-error.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify -x c++ %s
2*67e74705SXin Li 
3*67e74705SXin Li // This file is encoded using ISO-8859-1
4*67e74705SXin Li 
main()5*67e74705SXin Li int main() {
6*67e74705SXin Li   (void)'�'; // expected-warning {{illegal character encoding in character literal}}
7*67e74705SXin Li   (void)u'�'; // expected-error {{illegal character encoding in character literal}}
8*67e74705SXin Li   (void)U'�'; // expected-error {{illegal character encoding in character literal}}
9*67e74705SXin Li   (void)L'�'; // expected-error {{illegal character encoding in character literal}}
10*67e74705SXin Li 
11*67e74705SXin Li   // For narrow character literals, since there is no error, make sure the
12*67e74705SXin Li   // encoding is correct
13*67e74705SXin Li   static_assert((unsigned char)'�' == 0xE9, ""); // expected-warning {{illegal character encoding in character literal}}
14*67e74705SXin Li   static_assert('��' == 0xE9E9, ""); // expected-warning {{illegal character encoding in character literal}} expected-warning {{multi-character character constant}}
15*67e74705SXin Li }
16