xref: /aosp_15_r20/external/clang/test/Misc/warning-flags-tree.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: diagtool tree | FileCheck -strict-whitespace %s
2*67e74705SXin Li // RUN: diagtool tree -Weverything | FileCheck -strict-whitespace %s
3*67e74705SXin Li // RUN: diagtool tree everything | FileCheck -strict-whitespace %s
4*67e74705SXin Li //
5*67e74705SXin Li // These three ways of running diagtool tree are the same:
6*67e74705SXin Li // they produce a tree for every top-level diagnostic flag.
7*67e74705SXin Li // Just check a few to make sure we're actually showing more than one group.
8*67e74705SXin Li //
9*67e74705SXin Li // CHECK: -W
10*67e74705SXin Li // CHECK:   -Wextra
11*67e74705SXin Li // CHECK:     -Wmissing-field-initializers
12*67e74705SXin Li // CHECK:       warn_missing_field_initializers
13*67e74705SXin Li // CHECK: -Wall
14*67e74705SXin Li // CHECK:   -Wmost
15*67e74705SXin Li 
16*67e74705SXin Li // These flags are currently unimplemented; test that we output them anyway.
17*67e74705SXin Li // CHECK: -Wstrict-aliasing
18*67e74705SXin Li // CHECK-NEXT: -Wstrict-aliasing=0
19*67e74705SXin Li // CHECK-NEXT: -Wstrict-aliasing=1
20*67e74705SXin Li // CHECK-NEXT: -Wstrict-aliasing=2
21*67e74705SXin Li // CHECK: -Wstrict-overflow
22*67e74705SXin Li // CHECK-NEXT: -Wstrict-overflow=0
23*67e74705SXin Li // CHECK-NEXT: -Wstrict-overflow=1
24*67e74705SXin Li // CHECK-NEXT: -Wstrict-overflow=2
25*67e74705SXin Li // CHECK-NEXT: -Wstrict-overflow=3
26*67e74705SXin Li // CHECK-NEXT: -Wstrict-overflow=4
27*67e74705SXin Li // CHECK-NEXT: -Wstrict-overflow=5
28*67e74705SXin Li 
29*67e74705SXin Li 
30*67e74705SXin Li // RUN: not diagtool tree -Wthis-is-not-a-valid-flag
31*67e74705SXin Li 
32*67e74705SXin Li 
33*67e74705SXin Li // RUN: diagtool tree -Wgnu | FileCheck -strict-whitespace -check-prefix CHECK-GNU %s
34*67e74705SXin Li // CHECK-GNU: -Wgnu
35*67e74705SXin Li // CHECK-GNU:   -Wgnu-designator
36*67e74705SXin Li // CHECK-GNU:     ext_gnu_array_range
37*67e74705SXin Li // CHECK-GNU:     ext_gnu_missing_equal_designator
38*67e74705SXin Li // CHECK-GNU:     ext_gnu_old_style_field_designator
39*67e74705SXin Li // CHECK-GNU:   -Wvla-extension
40*67e74705SXin Li // CHECK-GNU:     ext_vla
41*67e74705SXin Li // There are more GNU extensions but we don't need to check them all.
42*67e74705SXin Li 
43*67e74705SXin Li // RUN: diagtool tree --flags-only -Wgnu | FileCheck -check-prefix CHECK-FLAGS-ONLY %s
44*67e74705SXin Li // CHECK-FLAGS-ONLY: -Wgnu
45*67e74705SXin Li // CHECK-FLAGS-ONLY:   -Wgnu-designator
46*67e74705SXin Li // CHECK-FLAGS-ONLY-NOT:     ext_gnu_array_range
47*67e74705SXin Li // CHECK-FLAGS-ONLY-NOT:     ext_gnu_missing_equal_designator
48*67e74705SXin Li // CHECK-FLAGS-ONLY-NOT:     ext_gnu_old_style_field_designator
49*67e74705SXin Li // CHECK-FLAGS-ONLY:   -Wvla
50*67e74705SXin Li // CHECK-FLAGS-ONLY-NOT:     ext_vla
51*67e74705SXin Li // CHECK-FLAGS-ONLY-NOT:   ext_array_init_copy
52*67e74705SXin Li // CHECK-FLAGS-ONLY-NOT:   ext_empty_struct_union
53*67e74705SXin Li // CHECK-FLAGS-ONLY-NOT:   ext_expr_not_ice
54