1// RUN: %check_clang_tidy %s readability-avoid-unconditional-preprocessor-if %t
2
3// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'false', consider removing both the condition and its contents [readability-avoid-unconditional-preprocessor-if]
4#if 0
5// some code
6#endif
7
8// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'true', consider removing condition but leaving its contents [readability-avoid-unconditional-preprocessor-if]
9#if 1
10// some code
11#endif
12
13#if test
14
15#endif
16
17// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'true', consider removing condition but leaving its contents [readability-avoid-unconditional-preprocessor-if]
18#if 10>5
19
20#endif
21
22// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'false', consider removing both the condition and its contents [readability-avoid-unconditional-preprocessor-if]
23#if 10<5
24
25#endif
26
27// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'true', consider removing condition but leaving its contents [readability-avoid-unconditional-preprocessor-if]
28#if 10 > 5
29// some code
30#endif
31
32// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'false', consider removing both the condition and its contents [readability-avoid-unconditional-preprocessor-if]
33#if 10 < 5
34// some code
35#endif
36
37// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'false', consider removing both the condition and its contents [readability-avoid-unconditional-preprocessor-if]
38#if !(10 > \
39 5)
40// some code
41#endif
42
43// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'true', consider removing condition but leaving its contents [readability-avoid-unconditional-preprocessor-if]
44#if !(10 < \
45 5)
46// some code
47#endif
48
49// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'true', consider removing condition but leaving its contents [readability-avoid-unconditional-preprocessor-if]
50#if true
51// some code
52#endif
53
54// CHECK-MESSAGES: :[[@LINE+1]]:2: warning: preprocessor condition is always 'false', consider removing both the condition and its contents [readability-avoid-unconditional-preprocessor-if]
55#if false
56// some code
57#endif
58
59#define MACRO
60#ifdef MACRO
61// some code
62#endif
63
64#if !SOMETHING
65#endif
66
67#if !( \
68 defined MACRO)
69// some code
70#endif
71
72
73#if __has_include(<string_view>)
74// some code
75#endif
76
77#if __has_include(<string_view_not_exist>)
78// some code
79#endif
80
81#define DDD 17
82#define EEE 18
83
84#if 10 > DDD
85// some code
86#endif
87
88#if 10 < DDD
89// some code
90#endif
91
92#if EEE > DDD
93// some code
94#endif
95

source code of clang-tools-extra/test/clang-tidy/checkers/readability/avoid-unconditional-preprocessor-if.cpp