xref: /aosp_15_r20/external/clang/test/Frontend/verify-ignore-unexpected.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: not %clang_cc1 -DTEST_SWITCH -verify-ignore-unexpected=remark,aoeu,note -verify %s 2>&1 \
2*67e74705SXin Li // RUN:     | FileCheck -check-prefix=CHECK-BAD-SWITCH %s
3*67e74705SXin Li #ifdef TEST_SWITCH
4*67e74705SXin Li // expected-no-diagnostics
5*67e74705SXin Li #endif
6*67e74705SXin Li // CHECK-BAD-SWITCH: error: 'error' diagnostics seen but not expected:
7*67e74705SXin Li // CHECK-BAD-SWITCH-NEXT: (frontend): invalid value 'aoeu' in '-verify-ignore-unexpected='
8*67e74705SXin Li 
9*67e74705SXin Li // RUN: %clang_cc1 -DTEST1 -verify %s
10*67e74705SXin Li // RUN: %clang_cc1 -DTEST1 -verify -verify-ignore-unexpected %s
11*67e74705SXin Li #ifdef TEST1
12*67e74705SXin Li #warning MyWarning1
13*67e74705SXin Li     // expected-warning@-1 {{MyWarning1}}
14*67e74705SXin Li int x; // expected-note {{previous definition is here}}
15*67e74705SXin Li float x; // expected-error {{redefinition of 'x'}}
16*67e74705SXin Li #endif
17*67e74705SXin Li 
18*67e74705SXin Li // RUN: not %clang_cc1 -DTEST2 -verify %s 2>&1 \
19*67e74705SXin Li // RUN:     | FileCheck -check-prefix=CHECK-UNEXP %s
20*67e74705SXin Li // RUN: not %clang_cc1 -DTEST2 -verify -verify-ignore-unexpected= %s 2>&1 \
21*67e74705SXin Li // RUN:     | FileCheck -check-prefix=CHECK-UNEXP %s
22*67e74705SXin Li // RUN: not %clang_cc1 -DTEST2 -verify -verify-ignore-unexpected=note %s 2>&1 \
23*67e74705SXin Li // RUN:     | FileCheck -check-prefix=CHECK-NOTE %s
24*67e74705SXin Li // RUN: not %clang_cc1 -DTEST2 -verify -verify-ignore-unexpected=warning %s 2>&1 \
25*67e74705SXin Li // RUN:     | FileCheck -check-prefix=CHECK-WARN %s
26*67e74705SXin Li // RUN: not %clang_cc1 -DTEST2 -verify -verify-ignore-unexpected=error %s 2>&1 \
27*67e74705SXin Li // RUN:     | FileCheck -check-prefix=CHECK-ERR %s
28*67e74705SXin Li #ifdef TEST2
29*67e74705SXin Li #warning MyWarning2
30*67e74705SXin Li int x;
31*67e74705SXin Li float x;
32*67e74705SXin Li #endif
33*67e74705SXin Li // CHECK-UNEXP: no expected directives found
34*67e74705SXin Li // CHECK-UNEXP-NEXT: 'error' diagnostics seen but not expected
35*67e74705SXin Li // CHECK-UNEXP-NEXT: Line {{[0-9]+}}: redefinition of 'x'
36*67e74705SXin Li // CHECK-UNEXP-NEXT: 'warning' diagnostics seen but not expected
37*67e74705SXin Li // CHECK-UNEXP-NEXT: Line {{[0-9]+}}: MyWarning2
38*67e74705SXin Li // CHECK-UNEXP-NEXT: 'note' diagnostics seen but not expected
39*67e74705SXin Li // CHECK-UNEXP-NEXT: Line {{[0-9]+}}: previous definition is here
40*67e74705SXin Li // CHECK-UNEXP-NEXT: 4 errors generated.
41*67e74705SXin Li 
42*67e74705SXin Li // CHECK-NOTE: no expected directives found
43*67e74705SXin Li // CHECK-NOTE-NEXT: 'error' diagnostics seen but not expected
44*67e74705SXin Li // CHECK-NOTE-NEXT: Line {{[0-9]+}}: redefinition of 'x'
45*67e74705SXin Li // CHECK-NOTE-NEXT: 'warning' diagnostics seen but not expected
46*67e74705SXin Li // CHECK-NOTE-NEXT: Line {{[0-9]+}}: MyWarning2
47*67e74705SXin Li // CHECK-NOTE-NEXT: 3 errors generated.
48*67e74705SXin Li 
49*67e74705SXin Li // CHECK-WARN: no expected directives found
50*67e74705SXin Li // CHECK-WARN-NEXT: 'error' diagnostics seen but not expected
51*67e74705SXin Li // CHECK-WARN-NEXT: Line {{[0-9]+}}: redefinition of 'x'
52*67e74705SXin Li // CHECK-WARN-NEXT: 'note' diagnostics seen but not expected
53*67e74705SXin Li // CHECK-WARN-NEXT: Line {{[0-9]+}}: previous definition is here
54*67e74705SXin Li // CHECK-WARN-NEXT: 3 errors generated.
55*67e74705SXin Li 
56*67e74705SXin Li // CHECK-ERR: no expected directives found
57*67e74705SXin Li // CHECK-ERR-NEXT: 'warning' diagnostics seen but not expected
58*67e74705SXin Li // CHECK-ERR-NEXT: Line {{[0-9]+}}: MyWarning2
59*67e74705SXin Li // CHECK-ERR-NEXT: 'note' diagnostics seen but not expected
60*67e74705SXin Li // CHECK-ERR-NEXT: Line {{[0-9]+}}: previous definition is here
61*67e74705SXin Li // CHECK-ERR-NEXT: 3 errors generated.
62*67e74705SXin Li 
63*67e74705SXin Li // RUN: not %clang_cc1 -DTEST3 -verify -verify-ignore-unexpected %s 2>&1 \
64*67e74705SXin Li // RUN:     | FileCheck -check-prefix=CHECK-EXP %s
65*67e74705SXin Li #ifdef TEST3
66*67e74705SXin Li // expected-error {{test3}}
67*67e74705SXin Li #endif
68*67e74705SXin Li // CHECK-EXP: 'error' diagnostics expected but not seen
69*67e74705SXin Li // CHECK-EXP-NEXT: Line {{[0-9]+}}: test3
70*67e74705SXin Li 
71*67e74705SXin Li // RUN: not %clang_cc1 -DTEST4 -verify -verify-ignore-unexpected %s 2>&1 \
72*67e74705SXin Li // RUN:     | FileCheck -check-prefix=CHECK-NOEXP %s
73*67e74705SXin Li // RUN: not %clang_cc1 -DTEST4 -verify -verify-ignore-unexpected=warning,error,note %s 2>&1 \
74*67e74705SXin Li // RUN:     | FileCheck -check-prefix=CHECK-NOEXP %s
75*67e74705SXin Li #ifdef TEST4
76*67e74705SXin Li #warning MyWarning4
77*67e74705SXin Li int x;
78*67e74705SXin Li float x;
79*67e74705SXin Li #endif
80*67e74705SXin Li // CHECK-NOEXP: error: no expected directives found
81*67e74705SXin Li // CHECK-NOEXP-NEXT: 1 error generated
82