xref: /aosp_15_r20/external/clang/test/TableGen/anonymous-groups.td (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: clang-tblgen -gen-clang-diag-groups -I%S %s -o /dev/null 2>&1 | FileCheck --strict-whitespace %s
2*67e74705SXin Liinclude "DiagnosticBase.inc"
3*67e74705SXin Li
4*67e74705SXin Li// Do not move this line; it is referred to by absolute line number in the
5*67e74705SXin Li// FileCheck lines below.
6*67e74705SXin Lidef NamedGroup : DiagGroup<"name">;
7*67e74705SXin Li
8*67e74705SXin Li
9*67e74705SXin Lidef InNamedGroup : Warning<"">, InGroup<DiagGroup<"name">>;
10*67e74705SXin Li//      CHECK: anonymous-groups.td:[[@LINE-1]]:41: error: group 'name' is referred to anonymously
11*67e74705SXin Li// CHECK-NEXT: {{^def InNamedGroup : Warning<"">, InGroup<DiagGroup<"name">>;}}
12*67e74705SXin Li// CHECK-NEXT: {{^                                ~~~~~~~~\^~~~~~~~~~~~~~~~~~}}
13*67e74705SXin Li// CHECK-NEXT: {{^                                InGroup<NamedGroup>}}
14*67e74705SXin Li// CHECK-NEXT: anonymous-groups.td:6:1: note: group defined here
15*67e74705SXin Li// CHECK-NEXT: def NamedGroup : DiagGroup<"name">;
16*67e74705SXin Li// CHECK-NEXT: ^
17*67e74705SXin Li
18*67e74705SXin Li
19*67e74705SXin Lidef AlsoInNamedGroup : Warning<"">, InGroup  < DiagGroup<"name"> >;
20*67e74705SXin Li//      CHECK: anonymous-groups.td:[[@LINE-1]]:48: error: group 'name' is referred to anonymously
21*67e74705SXin Li// CHECK-NEXT: {{^def AlsoInNamedGroup : Warning<"">, InGroup  < DiagGroup<"name"> >;}}
22*67e74705SXin Li// CHECK-NEXT: {{^                                    ~~~~~~~~~~~\^~~~~~~~~~~~~~~~~~~}}
23*67e74705SXin Li// CHECK-NEXT: {{^                                    InGroup<NamedGroup>}}
24*67e74705SXin Li// CHECK-NEXT: anonymous-groups.td:6:1: note: group defined here
25*67e74705SXin Li// CHECK-NEXT: def NamedGroup : DiagGroup<"name">;
26*67e74705SXin Li// CHECK-NEXT: ^
27*67e74705SXin Li
28*67e74705SXin Li
29*67e74705SXin Lidef AnonymousGroup : Warning<"">, InGroup<DiagGroup<"anonymous">>;
30*67e74705SXin Lidef AlsoAnonymousGroup : Warning<"">, InGroup<DiagGroup<"anonymous">>;
31*67e74705SXin Lidef AnonymousGroupAgain : Warning<"">,
32*67e74705SXin Li  InGroup<DiagGroup<"anonymous">>;
33*67e74705SXin Li
34*67e74705SXin Li//      CHECK: anonymous-groups.td:[[@LINE-5]]:43: error: group 'anonymous' is referred to anonymously
35*67e74705SXin Li// CHECK-NEXT: {{^def AnonymousGroup : Warning<"">, InGroup<DiagGroup<"anonymous">>;}}
36*67e74705SXin Li// CHECK-NEXT: {{^                                  ~~~~~~~~\^~~~~~~~~~~~~~~~~~~~~~~}}
37*67e74705SXin Li// CHECK-NEXT: anonymous-groups.td:[[@LINE-7]]:47: note: also referenced here
38*67e74705SXin Li// CHECK-NEXT: {{^def AlsoAnonymousGroup : Warning<"">, InGroup<DiagGroup<"anonymous">>;}}
39*67e74705SXin Li// CHECK-NEXT: {{^                                      ~~~~~~~~\^~~~~~~~~~~~~~~~~~~~~~~}}
40*67e74705SXin Li// CHECK-NEXT: anonymous-groups.td:[[@LINE-8]]:11: note: also referenced here
41*67e74705SXin Li// CHECK-NEXT: {{^  InGroup<DiagGroup<"anonymous">>;}}
42*67e74705SXin Li// CHECK-NEXT: {{^  ~~~~~~~~\^~~~~~~~~~~~~~~~~~~~~~~}}
43