From 3bb8b56a5d90c535e7dc466f924d00ce798c28e0 Mon Sep 17 00:00:00 2001 From: Richard Trieu Date: Wed, 26 Feb 2014 02:36:06 +0000 Subject: PR16074, implement warnings to catch pointer to boolean true and pointer to null comparison when the pointer is known to be non-null. This catches the array to pointer decay, function to pointer decay and address of variables. This does not catch address of function since this has been previously used to silence a warning. Pointer to bool conversion is under -Wbool-conversion. Pointer to null comparison is under -Wtautological-pointer-compare, a sub-group of -Wtautological-compare. void foo() { int arr[5]; int x; // warn on these conditionals if (foo); if (arr); if (&x); if (foo == null); if (arr == null); if (&x == null); if (&foo); // no warning } llvm-svn: 202216 --- clang/test/Analysis/casts.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'clang/test/Analysis/casts.c') diff --git a/clang/test/Analysis/casts.c b/clang/test/Analysis/casts.c index 3e2f8077ede..42c05beb594 100644 --- a/clang/test/Analysis/casts.c +++ b/clang/test/Analysis/casts.c @@ -110,7 +110,8 @@ void castsToBool() { clang_analyzer_eval(symbolicPointer); // expected-warning{{TRUE}} int localInt; - clang_analyzer_eval(&localInt); // expected-warning{{TRUE}} + int* ptr = &localInt; + clang_analyzer_eval(ptr); // expected-warning{{TRUE}} clang_analyzer_eval(&castsToBool); // expected-warning{{TRUE}} clang_analyzer_eval("abc"); // expected-warning{{TRUE}} -- cgit v1.2.3