Author: akirtzidis
Date: Thu Feb 24 02:42:20 2011
New Revision: 126372
URL: http://llvm.org/viewvc/llvm-project?rev=126372&view=rev
Log:
Allow passing a list of comma separated checker names to -analyzer-checker, e.g:
-analyzer-checker=cocoa,unix
Modified:
cfe/trunk/lib/Frontend/CompilerInvocation.cpp
cfe/trunk/test/Analysis/dead-stores.c
cfe/trunk/test/Analysis/misc-ps-region-store.m
cfe/trunk/test/Analysis/misc-ps.m
cfe/trunk/test/Analysis/ptr-arith.c
cfe/trunk/test/Analysis/retain-release.m
cfe/trunk/test/Analysis/string.c
cfe/trunk/test/Analysis/unix-fns.c
cfe/trunk/test/Analysis/unreachable-code-path.c
Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=126372&r1=126371&r2=126372&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
+++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Thu Feb 24 02:42:20 2011
@@ -891,8 +891,13 @@
const Arg *A = *it;
A->claim();
bool enable = (A->getOption().getID() == OPT_analyzer_checker);
- Opts.CheckersControlList.push_back(std::make_pair(A->getValue(Args),
- enable));
+ // We can have a list of comma separated checker names, e.g:
+ // '-analyzer-checker=cocoa,unix'
+ llvm::StringRef checkerList = A->getValue(Args);
+ llvm::SmallVector<llvm::StringRef, 4> checkers;
+ checkerList.split(checkers, ",");
+ for (unsigned i = 0, e = checkers.size(); i != e; ++i)
+ Opts.CheckersControlList.push_back(std::make_pair(checkers[i], enable));
}
}
Modified: cfe/trunk/test/Analysis/dead-stores.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/dead-stores.c?rev=126372&r1=126371&r2=126372&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/dead-stores.c (original)
+++ cfe/trunk/test/Analysis/dead-stores.c Thu Feb 24 02:42:20 2011
@@ -1,8 +1,8 @@
-// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.DeadStores -fblocks -verify -Wno-unreachable-code
-analyzer-opt-analyze-nested-blocks %s
-// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=basic -analyzer-constraints=basic
-analyzer-checker=core.DeadStores -fblocks -verify -Wno-unreachable-code
-analyzer-opt-analyze-nested-blocks %s
-// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=basic -analyzer-constraints=range
-analyzer-checker=core.DeadStores -fblocks -verify -Wno-unreachable-code
-analyzer-opt-analyze-nested-blocks %s
-// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=region -analyzer-constraints=basic
-analyzer-checker=core.DeadStores -fblocks -verify -Wno-unreachable-code
-analyzer-opt-analyze-nested-blocks %s
-// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=region -analyzer-constraints=range
-analyzer-checker=core.DeadStores -fblocks -verify -Wno-unreachable-code
-analyzer-opt-analyze-nested-blocks %s
+// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.DeadStores,core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem -fblocks
-verify -Wno-unreachable-code -analyzer-opt-analyze-nested-blocks %s
+// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.DeadStores,core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=basic -analyzer-constraints=basic -fblocks -verify
-Wno-unreachable-code -analyzer-opt-analyze-nested-blocks %s
+// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.DeadStores,core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=basic -analyzer-constraints=range -fblocks -verify
-Wno-unreachable-code -analyzer-opt-analyze-nested-blocks %s
+// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.DeadStores,core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=region -analyzer-constraints=basic -fblocks -verify
-Wno-unreachable-code -analyzer-opt-analyze-nested-blocks %s
+// RUN: %clang_cc1 -Wunused-variable -analyze
-analyzer-checker=core.DeadStores,core.experimental.IdempotentOps
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=region -analyzer-constraints=range -fblocks -verify
-Wno-unreachable-code -analyzer-opt-analyze-nested-blocks %s
void f1() {
int k, y; // expected-warning{{unused variable 'k'}}
expected-warning{{unused variable 'y'}}
Modified: cfe/trunk/test/Analysis/misc-ps-region-store.m
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-ps-region-store.m?rev=126372&r1=126371&r2=126372&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/misc-ps-region-store.m (original)
+++ cfe/trunk/test/Analysis/misc-ps-region-store.m Thu Feb 24 02:42:20 2011
@@ -1,5 +1,5 @@
-// RUN: %clang_cc1 -triple i386-apple-darwin9 -analyze
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct
-analyzer-checker=core.experimental.ReturnPtrRange
-analyzer-checker=core.experimental.ReturnPtrRange
-analyzer-checker=core.experimental.ArrayBound
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=region -verify -fblocks -analyzer-opt-analyze-nested-blocks %s
-// RUN: %clang_cc1 -triple x86_64-apple-darwin9 -DTEST_64 -analyze
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct
-analyzer-checker=core.experimental.ReturnPtrRange
-analyzer-checker=core.experimental.ArrayBound
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=region -verify -fblocks -analyzer-opt-analyze-nested-blocks %s
+// RUN: %clang_cc1 -triple i386-apple-darwin9 -analyze
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,core.experimental.ReturnPtrRange,core.experimental.ReturnPtrRange,core.experimental.ArrayBound
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=region -verify -fblocks -analyzer-opt-analyze-nested-blocks %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin9 -DTEST_64 -analyze
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,core.experimental.ReturnPtrRange,core.experimental.ArrayBound
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-store=region -verify -fblocks -analyzer-opt-analyze-nested-blocks %s
typedef long unsigned int size_t;
void *memcpy(void *, const void *, size_t);
Modified: cfe/trunk/test/Analysis/misc-ps.m
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-ps.m?rev=126372&r1=126371&r2=126372&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/misc-ps.m (original)
+++ cfe/trunk/test/Analysis/misc-ps.m Thu Feb 24 02:42:20 2011
@@ -1,12 +1,12 @@
// NOTE: Use '-fobjc-gc' to test the analysis being run twice, and multiple
reports are not issued.
-// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct -analyzer-checker=cocoa.AtSync
-analyzer-store=basic -fobjc-gc -analyzer-constraints=basic -verify -fblocks
-Wno-unreachable-code %s
-// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct -analyzer-checker=cocoa.AtSync
-analyzer-store=basic -analyzer-constraints=range -verify -fblocks
-Wno-unreachable-code %s
-// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct -analyzer-checker=cocoa.AtSync
-analyzer-store=region -analyzer-constraints=basic -verify -fblocks
-Wno-unreachable-code %s
-// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct -analyzer-checker=cocoa.AtSync
-analyzer-store=region -analyzer-constraints=range -verify -fblocks
-Wno-unreachable-code %s
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct -analyzer-checker=cocoa.AtSync
-analyzer-store=basic -fobjc-gc -analyzer-constraints=basic -verify -fblocks
-Wno-unreachable-code %s
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct -analyzer-checker=cocoa.AtSync
-analyzer-store=basic -analyzer-constraints=range -verify -fblocks
-Wno-unreachable-code %s
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct -analyzer-checker=cocoa.AtSync
-analyzer-store=region -analyzer-constraints=basic -verify -fblocks
-Wno-unreachable-code %s
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps
-analyzer-checker=core.experimental.CastToStruct -analyzer-checker=cocoa.AtSync
-analyzer-store=region -analyzer-constraints=range -verify -fblocks
-Wno-unreachable-code %s
+// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,cocoa.AtSync
-analyzer-store=basic -fobjc-gc -analyzer-constraints=basic -verify -fblocks
-Wno-unreachable-code %s
+// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,cocoa.AtSync
-analyzer-store=basic -analyzer-constraints=range -verify -fblocks
-Wno-unreachable-code %s
+// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,cocoa.AtSync
-analyzer-store=region -analyzer-constraints=basic -verify -fblocks
-Wno-unreachable-code %s
+// RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,cocoa.AtSync
-analyzer-store=region -analyzer-constraints=range -verify -fblocks
-Wno-unreachable-code %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,cocoa.AtSync
-analyzer-store=basic -fobjc-gc -analyzer-constraints=basic -verify -fblocks
-Wno-unreachable-code %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,cocoa.AtSync
-analyzer-store=basic -analyzer-constraints=range -verify -fblocks
-Wno-unreachable-code %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,cocoa.AtSync
-analyzer-store=region -analyzer-constraints=basic -verify -fblocks
-Wno-unreachable-code %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-experimental-internal-checks -analyzer-check-objc-mem
-analyzer-checker=core.experimental.IdempotentOps,core.experimental.CastToStruct,cocoa.AtSync
-analyzer-store=region -analyzer-constraints=range -verify -fblocks
-Wno-unreachable-code %s
#ifndef __clang_analyzer__
#error __clang__analyzer__ not defined
Modified: cfe/trunk/test/Analysis/ptr-arith.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/ptr-arith.c?rev=126372&r1=126371&r2=126372&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/ptr-arith.c (original)
+++ cfe/trunk/test/Analysis/ptr-arith.c Thu Feb 24 02:42:20 2011
@@ -1,5 +1,5 @@
-// RUN: %clang_cc1 -analyze -analyzer-checker=core.experimental.FixedAddr
-analyzer-checker=core.experimental.PointerArithm
-analyzer-checker=core.experimental.PointerSub -analyzer-check-objc-mem
-analyzer-store=region -verify -triple x86_64-apple-darwin9 %s
-// RUN: %clang_cc1 -analyze -analyzer-checker=core.experimental.FixedAddr
-analyzer-checker=core.experimental.PointerArithm
-analyzer-checker=core.experimental.PointerSub -analyzer-check-objc-mem
-analyzer-store=region -verify -triple i686-apple-darwin9 %s
+// RUN: %clang_cc1 -analyze
-analyzer-checker=core.experimental.FixedAddr,core.experimental.PointerArithm,core.experimental.PointerSub
-analyzer-check-objc-mem -analyzer-store=region -verify -triple
x86_64-apple-darwin9 %s
+// RUN: %clang_cc1 -analyze
-analyzer-checker=core.experimental.FixedAddr,core.experimental.PointerArithm,core.experimental.PointerSub
-analyzer-check-objc-mem -analyzer-store=region -verify -triple
i686-apple-darwin9 %s
// Used to trigger warnings for unreachable paths.
#define WARN do { int a, b; int c = &b-&a; } while (0)
Modified: cfe/trunk/test/Analysis/retain-release.m
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retain-release.m?rev=126372&r1=126371&r2=126372&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/retain-release.m (original)
+++ cfe/trunk/test/Analysis/retain-release.m Thu Feb 24 02:42:20 2011
@@ -1,5 +1,5 @@
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-checker=macosx.CFRetainRelease -analyzer-checker=cocoa.ClassRelease
-analyzer-check-objc-mem -analyzer-store=basic -fblocks -verify %s
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-checker=macosx.CFRetainRelease -analyzer-checker=cocoa.ClassRelease
-analyzer-check-objc-mem -analyzer-store=region -fblocks -verify %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-checker=macosx.CFRetainRelease,cocoa.ClassRelease
-analyzer-check-objc-mem -analyzer-store=basic -fblocks -verify %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-checker=macosx.CFRetainRelease,cocoa.ClassRelease
-analyzer-check-objc-mem -analyzer-store=region -fblocks -verify %s
#if __has_feature(attribute_ns_returns_retained)
#define NS_RETURNS_RETAINED __attribute__((ns_returns_retained))
Modified: cfe/trunk/test/Analysis/string.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/string.c?rev=126372&r1=126371&r2=126372&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/string.c (original)
+++ cfe/trunk/test/Analysis/string.c Thu Feb 24 02:42:20 2011
@@ -1,7 +1,7 @@
-// RUN: %clang_cc1 -analyze -analyzer-checker=core.experimental.CString
-analyzer-checker=core.experimental.UnreachableCode -analyzer-check-objc-mem
-analyzer-store=region -verify %s
-// RUN: %clang_cc1 -analyze -DUSE_BUILTINS
-analyzer-checker=core.experimental.CString
-analyzer-checker=core.experimental.UnreachableCode -analyzer-check-objc-mem
-analyzer-store=region -verify %s
-// RUN: %clang_cc1 -analyze -DVARIANT
-analyzer-checker=core.experimental.CString
-analyzer-checker=core.experimental.UnreachableCode -analyzer-check-objc-mem
-analyzer-store=region -verify %s
-// RUN: %clang_cc1 -analyze -DUSE_BUILTINS -DVARIANT
-analyzer-checker=core.experimental.CString
-analyzer-checker=core.experimental.UnreachableCode -analyzer-check-objc-mem
-analyzer-store=region -verify %s
+// RUN: %clang_cc1 -analyze
-analyzer-checker=core.experimental.CString,core.experimental.UnreachableCode
-analyzer-check-objc-mem -analyzer-store=region -verify %s
+// RUN: %clang_cc1 -analyze -DUSE_BUILTINS
-analyzer-checker=core.experimental.CString,core.experimental.UnreachableCode
-analyzer-check-objc-mem -analyzer-store=region -verify %s
+// RUN: %clang_cc1 -analyze -DVARIANT
-analyzer-checker=core.experimental.CString,core.experimental.UnreachableCode
-analyzer-check-objc-mem -analyzer-store=region -verify %s
+// RUN: %clang_cc1 -analyze -DUSE_BUILTINS -DVARIANT
-analyzer-checker=core.experimental.CString,core.experimental.UnreachableCode
-analyzer-check-objc-mem -analyzer-store=region -verify %s
//===----------------------------------------------------------------------===
// Declarations
Modified: cfe/trunk/test/Analysis/unix-fns.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/unix-fns.c?rev=126372&r1=126371&r2=126372&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/unix-fns.c (original)
+++ cfe/trunk/test/Analysis/unix-fns.c Thu Feb 24 02:42:20 2011
@@ -1,5 +1,5 @@
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-check-objc-mem -analyzer-checker=unix.API
-analyzer-checker=macosx.API %s -analyzer-store=region -fblocks -verify
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-check-objc-mem -analyzer-checker=unix.API
-analyzer-checker=macosx.API %s -analyzer-store=basic -fblocks -verify
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-check-objc-mem -analyzer-checker=unix.API,macosx.API %s
-analyzer-store=region -fblocks -verify
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze
-analyzer-check-objc-mem -analyzer-checker=unix.API,macosx.API %s
-analyzer-store=basic -fblocks -verify
struct _opaque_pthread_once_t {
long __sig;
Modified: cfe/trunk/test/Analysis/unreachable-code-path.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/unreachable-code-path.c?rev=126372&r1=126371&r2=126372&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/unreachable-code-path.c (original)
+++ cfe/trunk/test/Analysis/unreachable-code-path.c Thu Feb 24 02:42:20 2011
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -analyze
-analyzer-checker=core.experimental.UnreachableCode -analyzer-check-objc-mem
-analyzer-checker=core.DeadStores -verify -analyzer-opt-analyze-nested-blocks
-Wno-unused-value %s
+// RUN: %clang_cc1 -analyze
-analyzer-checker=core.DeadStores,core.experimental.UnreachableCode
-analyzer-check-objc-mem -verify -analyzer-opt-analyze-nested-blocks
-Wno-unused-value %s
extern void foo(int a);
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits