xref: /llvm-project/clang/test/Lexer/char-literal-encoding-error.c (revision 9436352a8297f0f4b068fec1b3189dbbeb7aa1cb)
16255c257SSeth Cantrell // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify -x c++ %s
26255c257SSeth Cantrell 
36255c257SSeth Cantrell // This file is encoded using ISO-8859-1
46255c257SSeth Cantrell 
main()56255c257SSeth Cantrell int main() {
6*9436352aSEli Friedman   (void)'�'; // expected-warning {{illegal character encoding in character literal}}
7*9436352aSEli Friedman   (void)u'�'; // expected-error {{illegal character encoding in character literal}}
8*9436352aSEli Friedman   (void)U'�'; // expected-error {{illegal character encoding in character literal}}
9*9436352aSEli Friedman   (void)L'�'; // expected-error {{illegal character encoding in character literal}}
10*9436352aSEli Friedman 
11*9436352aSEli Friedman   // For narrow character literals, since there is no error, make sure the
12*9436352aSEli Friedman   // encoding is correct
13*9436352aSEli Friedman   static_assert((unsigned char)'�' == 0xE9, ""); // expected-warning {{illegal character encoding in character literal}}
14*9436352aSEli Friedman   static_assert('��' == 0xE9E9, ""); // expected-warning {{illegal character encoding in character literal}} expected-warning {{multi-character character constant}}
156255c257SSeth Cantrell }
16