blob: a32474d5ac83009abbc745ab0e18bcb934c55460 [file] [log] [blame]
Alexander Kornienko23fe9592014-05-15 14:27:36 +00001// RUN: clang-tidy -checks='-*,clang-analyzer-core.NullDereference' -analyze-temporary-dtors %s -- | FileCheck %s
Alex McCarthyfec08c72014-04-30 14:09:24 +00002
3struct NoReturnDtor {
4 ~NoReturnDtor() __attribute__((noreturn));
5};
6
7extern bool check(const NoReturnDtor &);
8
9// CHECK-NOT: warning
10void testNullPointerDereferencePositive() {
11 int *value = 0;
12 // CHECK: [[@LINE+1]]:10: warning: Dereference of null pointer (loaded from variable 'value') [clang-analyzer-core.NullDereference]
13 *value = 1;
14}
15
16// CHECK-NOT: warning
17void testNullPointerDereference() {
18 int *value = 0;
19 if (check(NoReturnDtor())) {
20 // This unreachable code causes a warning if we don't run with -analyze-temporary-dtors
21 *value = 1;
22 }
23}