| // RUN: %check_clang_tidy %s misc-pointer-and-integral-operation %t -- -- -std=c++98 |
| |
| bool* pb; |
| char* pc; |
| int* pi; |
| |
| int Test() { |
| pb = false; |
| // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: suspicious assignment from bool to pointer [misc-pointer-and-integral-operation] |
| pc = '\0'; |
| // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: suspicious assignment from char to pointer |
| |
| pb = (false?false:false); |
| // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: suspicious assignment from bool to pointer |
| pb = (4 != 5?false:false); |
| // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: suspicious assignment from bool to pointer |
| |
| if (pb < false) return 0; |
| // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: suspicious operation between pointer and bool literal |
| if (pb != false) return 0; |
| // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: suspicious operation between pointer and bool literal |
| if (pc < '\0') return 0; |
| // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: suspicious operation between pointer and character literal |
| if (pc != '\0') return 0; |
| // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: suspicious operation between pointer and character literal |
| if (pi < '\0') return 0; |
| // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: suspicious operation between pointer and character literal |
| if (pi != '\0') return 0; |
| // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: suspicious operation between pointer and character literal |
| |
| return 1; |
| } |
| |
| int Valid() { |
| *pb = false; |
| *pc = '\0'; |
| |
| pb += 0; |
| pc += 0; |
| pi += 0; |
| |
| pb += (pb != 0); |
| pc += (pc != 0); |
| pi += (pi != 0); |
| } |