summaryrefslogtreecommitdiff
path: root/test/Lexer/string-literal-errors.cpp
blob: 223dca4b94f6208597e83bb0c48542d07c2f8e90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// RUN: not %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: {{^          \^~$}}
}

#define foo() lots and lots of tokens, need at least 8 to fill up the smallvector buffer #BadThingsHappenNow