llvm-project/clang/test/Lexer/string-literal-errors.cpp
Richard Smith 639b8d05dd When a bad UTF-8 encoding or bogus escape sequence is encountered in a
string literal, produce a diagnostic pointing at the erroneous character
range, not at the start of the literal.

llvm-svn: 163459
2012-09-08 07:16:20 +00:00

26 lines
1020 B
C++

// RUN: %clang_cc1 -fsyntax-only %s 2>&1 | FileCheck -strict-whitespace %s
void foo() {
(void)"\q \u123z \x \U \U123 \U12345 \u123 \xyzzy \777 \U"
// CHECK: {{^ \(void\)"\\q \\u123z \\x \\U \\U123 \\U12345 \\u123 \\xyzzy \\777 \\U"$}}
//
// (void)"\q \u123z \x \U \U123 \U12345 \u123 \xyzzy \777 \U"
// CHECK: {{^ \^~$}}
// CHECK: {{^ \^~~~~$}}
// CHECK: {{^ \^~$}}
// CHECK: {{^ \^~$}}
// CHECK: {{^ \^~~~~$}}
// CHECK: {{^ \^~~~~~~$}}
// CHECK: {{^ \^~~~~$}}
// CHECK: {{^ \^~$}}
// CHECK: {{^ \^~~~$}}
// CHECK: {{^ \^~$}}
"123 \x \z";
// CHECK: {{^ "123 \\x \\z";$}}
//
// "123 \x \z";
// CHECK: {{^ \^~$}}
// CHECK: {{^ \^~$}}
}