"Run preprocessor, emit preprocessed file"),
clEnumValN(DumpRawTokens, "dump-raw-tokens",
"Lex file in raw mode and dump raw tokens"),
+ clEnumValN(RunAnalysis, "analyze",
+ "Run static analysis engine"),
clEnumValN(DumpTokens, "dump-tokens",
"Run preprocessor, dump internal rep of tokens"),
clEnumValN(ParseNoop, "parse-noop",
return CreateBlockRewriter(InFile, OutputFile, Diag, LangOpts);
case RunAnalysis:
- assert (!AnalysisList.empty());
return CreateAnalysisConsumer(&AnalysisList[0],
&AnalysisList[0]+AnalysisList.size(),
AnalysisStoreOpt, AnalysisDiagOpt,
exit(1);
}
- // Are we invoking one or more source analyses?
- if (!AnalysisList.empty() && ProgAction == ParseSyntaxOnly)
- ProgAction = RunAnalysis;
- else if (!InheritanceViewCls.empty()) // C++ visualization?
+ if (!InheritanceViewCls.empty()) // C++ visualization?
ProgAction = InheritanceView;
llvm::OwningPtr<SourceManager> SourceMgr;
-// RUN: clang -checker-cfref -verify -fobjc-gc %s
+// RUN: clang -analyze -checker-cfref -verify -fobjc-gc %s
//===----------------------------------------------------------------------===//
// The following code is reduced using delta-debugging from
-// RUN: clang -checker-cfref -verify -triple x86_64-apple-darwin9 %s
+// RUN: clang -analyze -checker-cfref -verify -triple x86_64-apple-darwin9 %s
typedef signed long CFIndex;
typedef const struct __CFAllocator * CFAllocatorRef;
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
typedef struct objc_selector *SEL;
typedef signed char BOOL;
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
typedef struct CGColorSpace *CGColorSpaceRef;
extern CGColorSpaceRef CGColorSpaceCreateDeviceRGB(void);
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
typedef signed char BOOL;
typedef int NSInteger;
-// RUN: clang -warn-objc-missing-dealloc '-DIBOutlet=__attribute__((iboutlet))' %s --verify
+// RUN: clang -analyze -warn-objc-missing-dealloc '-DIBOutlet=__attribute__((iboutlet))' %s --verify
typedef signed char BOOL;
@protocol NSObject - (BOOL)isEqual:(id)object; @end
@interface NSObject <NSObject> {}
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
// BEGIN delta-debugging reduced header stuff
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
//===----------------------------------------------------------------------===//
// The following code is reduced using delta-debugging from
-// RUN: clang -checker-cfref -warn-dead-stores -verify %s
+// RUN: clang -analyze -checker-cfref -warn-dead-stores -verify %s
// These declarations were reduced using Delta-Debugging from Foundation.h
// on Mac OS X. The test cases are below.
-// RUN: clang -checker-simple -verify %s &&
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-simple -verify %s &&
+// RUN: clang -analyze -checker-cfref -verify %s
#include <stdarg.h>
-// RUN: clang -checker-simple %s -verify
+// RUN: clang -analyze -checker-simple %s -verify
// The point of this test cases is to exercise properties in the static
// analyzer
-// RUN: clang -warn-objc-methodsigs -verify %s
+// RUN: clang -analyze -warn-objc-methodsigs -verify %s
#include <stdio.h>
-// RUN: clang -warn-objc-missing-dealloc %s -verify
+// RUN: clang -analyze -warn-objc-missing-dealloc %s -verify
// Tests for the checker which checks missing/extra ivar 'release' calls
// in dealloc.
-// RUN: clang -checker-simple -verify %s
-// DISABLE: clang -checker-simple -analyzer-store-region -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
+// DISABLE: clang -analyze -checker-simple -analyzer-store-region -verify %s
struct s {
int data;
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
typedef unsigned char Boolean;
typedef signed long CFIndex;
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
// This test case was reported in <rdar:problem/6080742>.
// It tests path-sensitivity with respect to '!(cfstring != 0)' (negation of inequality).
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
#include <stdint.h>
-// RUN: clang -warn-dead-stores -warn-uninit-values -verify %s
+// RUN: clang -analyze -warn-dead-stores -warn-uninit-values -verify %s
void f1()
{
-// RUN: clang -warn-dead-stores -verify %s &&
-// RUN: clang -checker-simple -warn-dead-stores -verify %s &&
-// RUN: clang -warn-dead-stores -checker-simple -verify %s
+// RUN: clang -analyze -warn-dead-stores -verify %s &&
+// RUN: clang -analyze -checker-simple -warn-dead-stores -verify %s &&
+// RUN: clang -analyze -warn-dead-stores -checker-simple -verify %s
void f1() {
-// RUN: clang -warn-dead-stores -verify %s
+// RUN: clang -analyze -warn-dead-stores -verify %s
typedef signed char BOOL;
typedef unsigned int NSUInteger;
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
//
// Just exercise the analyzer (no assertions).
-// RUN: clang -checker-cfref %s -verify &&
-// RUN: clang -checker-simple %s -verify
+// RUN: clang -analyze -checker-cfref %s -verify &&
+// RUN: clang -analyze -checker-simple %s -verify
unsigned foo();
typedef struct bf { unsigned x:2; } bf;
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
void f(void) {
void (*p)(void);
-// RUN: clang -checker-cfref --verify -fblocks %s
+// RUN: clang -analyze -checker-cfref --verify -fblocks %s
// Reduced test case from crash in <rdar://problem/6253157>
@class NSObject;
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
// This is a test case for the issue reported in PR 2819:
// http://llvm.org/bugs/show_bug.cgi?id=2819
-// RUN: clang -std=gnu99 -checker-simple -verify %s &&
-// RUN: clang -std=gnu99 -checker-simple -analyzer-store-region -analyzer-purge-dead=false -verify %s
+// RUN: clang -analyze -std=gnu99 -checker-simple -verify %s &&
+// RUN: clang -analyze -std=gnu99 -checker-simple -analyzer-store-region -analyzer-purge-dead=false -verify %s
#include<stdint.h>
#include <assert.h>
-// RUN: clang -checker-simple -analyzer-store-region -verify %s
+// RUN: clang -analyze -checker-simple -analyzer-store-region -verify %s
char f1() {
char* s = "abcd";
-// RUN: clang -checker-cfref %s --analyzer-store-basic -verify
-// DISABLE: clang -checker-cfref %s --analyzer-store-region -verify
+// RUN: clang -analyze -checker-cfref %s --analyzer-store-basic -verify
+// DISABLE: clang -analyze -checker-cfref %s --analyzer-store-region -verify
typedef int bar_return_t;
typedef struct {
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
typedef const struct __CFString * CFStringRef;
typedef const struct __CFAllocator * CFAllocatorRef;
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
//===----------------------------------------------------------------------===//
// The following code is reduced using delta-debugging from
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
#include <stdlib.h>
#include <alloca.h>
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
//===----------------------------------------------------------------------===//
// The following code is reduced using delta-debugging from
-// RUN: clang -verify -checker-cfref %s
+// RUN: clang -analyze -verify -checker-cfref %s
// Delta-Debugging reduced preamble.
typedef signed char BOOL;
-// DISABLE: clang -checker-simple -analyzer-store-region -verify %s
+// DISABLE: clang -analyze -checker-simple -analyzer-store-region -verify %s
struct s {
int data;
-// RUN: clang -checker-cfref -verify %s &&
-// RUN: clang -checker-cfref -analyzer-store-region -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s &&
+// RUN: clang -analyze -checker-cfref -analyzer-store-region -verify %s
struct FPRec {
void (*my_func)(int * x);
-// RUN: clang -warn-uninit-values -verify %s
+// RUN: clang -analyze -warn-uninit-values -verify %s
int f1() {
int x;
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
typedef unsigned int NSUInteger;
-// RUN: clang -warn-objc-unused-ivars %s -verify
+// RUN: clang -analyze -warn-objc-unused-ivars %s -verify
@interface A
{
push @CmdArgs,'-DIBOutlet=__attribute__((iboutlet))';
push @CmdArgs,@$Args;
@CmdArgsSansAnalyses = @CmdArgs;
+ push @CmdArgs,'--analyze';
push @CmdArgs,(split /\s/,$Analyses);
$RunAnalyzer = 1;
}