From: Jordan Rose Date: Fri, 26 Apr 2013 21:42:47 +0000 (+0000) Subject: [analyzer] Consolidate BoolAssignmentChecker tests by using two RUN lines. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ed6847ee6944757dfc4911abb29c6fc2d7cf9d79;p=clang [analyzer] Consolidate BoolAssignmentChecker tests by using two RUN lines. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180637 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Analysis/bool-assignment.cpp b/test/Analysis/bool-assignment.c similarity index 85% rename from test/Analysis/bool-assignment.cpp rename to test/Analysis/bool-assignment.c index 9361d93aab..86a581def6 100644 --- a/test/Analysis/bool-assignment.cpp +++ b/test/Analysis/bool-assignment.c @@ -1,8 +1,9 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=core,alpha.core.BoolAssignment -analyzer-store=region -verify %s +// RUN: %clang_cc1 -analyze -analyzer-checker=core,alpha.core.BoolAssignment -analyzer-store=region -verify -std=c99 -Dbool=_Bool %s +// RUN: %clang_cc1 -analyze -analyzer-checker=core,alpha.core.BoolAssignment -analyzer-store=region -verify -x c++ %s -// Test C++'s bool +// Test C++'s bool and C's _Bool -void test_cppbool_initialization(int y) { +void test_stdbool_initialization(int y) { if (y < 0) { bool x = y; // expected-warning {{Assignment of a non-Boolean value}} return; @@ -14,7 +15,7 @@ void test_cppbool_initialization(int y) { bool x = y; // no-warning } -void test_cppbool_assignment(int y) { +void test_stdbool_assignment(int y) { bool x = 0; // no-warning if (y < 0) { x = y; // expected-warning {{Assignment of a non-Boolean value}} diff --git a/test/Analysis/bool-assignment2.c b/test/Analysis/bool-assignment2.c deleted file mode 100644 index 22f4237adf..0000000000 --- a/test/Analysis/bool-assignment2.c +++ /dev/null @@ -1,35 +0,0 @@ -// RUN: %clang_cc1 -std=c99 -analyze -analyzer-checker=core,alpha.core.BoolAssignment -analyzer-store=region -verify %s - -// Test stdbool.h's _Bool - -// Prior to C99, stdbool.h uses this typedef, but even in ANSI C mode, _Bool -// appears to be defined. - -// #if __STDC_VERSION__ < 199901L -// typedef int _Bool; -// #endif - -void test_stdbool_initialization(int y) { - if (y < 0) { - _Bool x = y; // expected-warning {{Assignment of a non-Boolean value}} - return; - } - if (y > 1) { - _Bool x = y; // expected-warning {{Assignment of a non-Boolean value}} - return; - } - _Bool x = y; // no-warning -} - -void test_stdbool_assignment(int y) { - _Bool x = 0; // no-warning - if (y < 0) { - x = y; // expected-warning {{Assignment of a non-Boolean value}} - return; - } - if (y > 1) { - x = y; // expected-warning {{Assignment of a non-Boolean value}} - return; - } - x = y; // no-warning -}