| // RUN: clang-tidy -checks='-*,clang-analyzer-core.NullDereference' %s -- | FileCheck %s |
| |
| struct NoReturnDtor { |
| ~NoReturnDtor() __attribute__((noreturn)); |
| }; |
| |
| extern bool check(const NoReturnDtor &); |
| |
| // CHECK-NOT: warning |
| void testNullPointerDereferencePositive() { |
| int *value = 0; |
| // CHECK: [[@LINE+1]]:10: warning: Dereference of null pointer (loaded from variable 'value') [clang-analyzer-core.NullDereference] |
| *value = 1; |
| } |
| |
| // CHECK-NOT: warning |
| void testNullPointerDereference() { |
| int *value = 0; |
| if (check(NoReturnDtor())) { |
| // This unreachable code causes a warning if analysis of temporary |
| // destructors is not enabled. |
| *value = 1; |
| } |
| } |