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