llvm-for-llvmta/tools/clang/test/Lexer/char-literal-encoding-error.c

16 lines
844 B
C
Raw Normal View History

2022-04-25 13:02:35 +02:00
// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify -x c++ %s
// This file is encoded using ISO-8859-1
int main() {
(void)'<EFBFBD>'; // expected-warning {{illegal character encoding in character literal}}
(void)u'<EFBFBD>'; // expected-error {{illegal character encoding in character literal}}
(void)U'<EFBFBD>'; // expected-error {{illegal character encoding in character literal}}
(void)L'<EFBFBD>'; // expected-error {{illegal character encoding in character literal}}
// For narrow character literals, since there is no error, make sure the
// encoding is correct
static_assert((unsigned char)'<EFBFBD>' == 0xE9, ""); // expected-warning {{illegal character encoding in character literal}}
static_assert('<EFBFBD><EFBFBD>' == 0xE9E9, ""); // expected-warning {{illegal character encoding in character literal}} expected-warning {{multi-character character constant}}
}