1 | // This test-case runs several sub-tests on -verify to ensure that correct |
2 | // diagnostics are generated in relation to the mis-use and non-use of the |
3 | // 'expected-no-diagnostics' directive. |
4 | |
5 | // RUN: not %clang_cc1 -DTEST1 -verify %s 2>&1 | FileCheck -check-prefix=CHECK1 %s |
6 | #ifdef TEST1 |
7 | // expected-no-diagnostics |
8 | // expected-note {{}} |
9 | |
10 | // CHECK1: error: 'error' diagnostics seen but not expected: |
11 | // CHECK1-NEXT: Line 8: expected directive cannot follow 'expected-no-diagnostics' directive |
12 | // CHECK1-NEXT: 1 error generated. |
13 | #endif |
14 | |
15 | // RUN: not %clang_cc1 -DTEST2 -verify %s 2>&1 | FileCheck -check-prefix=CHECK2 %s |
16 | #ifdef TEST2 |
17 | #warning X |
18 | // expected-warning@-1 {{X}} |
19 | // expected-no-diagnostics |
20 | |
21 | // CHECK2: error: 'error' diagnostics seen but not expected: |
22 | // CHECK2-NEXT: Line 19: 'expected-no-diagnostics' directive cannot follow other expected directives |
23 | // CHECK2-NEXT: 1 error generated. |
24 | #endif |
25 | |
26 | // RUN: not %clang_cc1 -DTEST3 -verify %s 2>&1 | FileCheck -check-prefix=CHECK3 %s |
27 | // RUN: not %clang_cc1 -verify %s 2>&1 | FileCheck -check-prefix=CHECK3 %s |
28 | #ifdef TEST3 |
29 | // no directives |
30 | |
31 | // CHECK3: error: no expected directives found: consider use of 'expected-no-diagnostics' |
32 | // CHECK3-NEXT: 1 error generated. |
33 | #endif |
34 | |
35 | // RUN: %clang_cc1 -E -DTEST4 -verify %s 2>&1 | FileCheck -check-prefix=CHECK4 %s |
36 | #ifdef TEST4 |
37 | #warning X |
38 | // expected-warning@-1 {{X}} |
39 | |
40 | // CHECK4-NOT: error: no expected directives found: consider use of 'expected-no-diagnostics' |
41 | #endif |
42 | |