| // RUN: not %clang_cc1 -fsyntax-only %s 2>&1 | FileCheck -strict-whitespace %s |
| |
| /// empty lines in multi-line diagnostic snippets are preserved. |
| static_assert(false && |
| |
| true, ""); |
| // CHECK: static assertion failed |
| // CHECK-NEXT: {{^}} 4 | static_assert(false &&{{$}} |
| // CHECK-NEXT: {{^}} | ^~~~~~~~{{$}} |
| // CHECK-NEXT: {{^}} 5 | {{$}} |
| // CHECK-NEXT: {{^}} 6 | true, "");{{$}} |
| // CHECK-NEXT: {{^}} | ~~~~{{$}} |
| |
| |
| /// #line pragmas are respected |
| void printf(const char *a, ...) __attribute__((__format__(__printf__, 1, 2))); |
| #line 10 |
| void f(int x) { |
| printf("%f", |
| x); |
| } |
| // CHECK: 12:10: warning: format specifies type |
| // CHECK-NEXT: {{^}} 11 | |
| // CHECK-NEXT: {{^}} | |
| // CHECK-NEXT: {{^}} | |
| // CHECK-NEXT: {{^}} 12 | |
| |
| #line 10 |
| int func( |
| int a, int b, |
| int& |
| r); |
| |
| void test() { |
| func(3, 4, 5); |
| } |
| // CHECK: 10:5: note: candidate function not viable |
| // CHECK-NEXT: {{^}} 10 | |
| // CHECK-NEXT: {{^}} | |
| // CHECK-NEXT: {{^}} 11 | |
| // CHECK-NEXT: {{^}} 12 | |
| // CHECK-NEXT: {{^}} | |
| // CHECK-NEXT: {{^}} 13 | |
| // CHECK-NEXT: {{^}} | |
| |