forked from OSchip/llvm-project
Provide an "Analysis Scope" for Analyses so checks can either be run on code declarations (bodies) or Objective-C @implementation blocks.
llvm-svn: 53584
This commit is contained in:
parent
7688bed4ff
commit
fd7efdf20d
|
@ -12,30 +12,32 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
ANALYSIS(CFGDump, "cfg-dump",
|
||||
"Display Control-Flow Graphs")
|
||||
"Display Control-Flow Graphs", Code)
|
||||
|
||||
ANALYSIS(CFGView, "cfg-view",
|
||||
"View Control-Flow Graphs using GraphViz")
|
||||
"View Control-Flow Graphs using GraphViz", Code)
|
||||
|
||||
ANALYSIS(DisplayLiveVariables, "dump-live-variables",
|
||||
"Print results of live variable analysis")
|
||||
"Print results of live variable analysis", Code)
|
||||
|
||||
ANALYSIS(WarnDeadStores, "warn-dead-stores",
|
||||
"Warn about stores to dead variables")
|
||||
"Warn about stores to dead variables", Code)
|
||||
|
||||
ANALYSIS(WarnUninitVals, "warn-uninit-values",
|
||||
"Warn about uses of uninitialized variables")
|
||||
"Warn about uses of uninitialized variables", Code)
|
||||
|
||||
ANALYSIS(WarnObjCMethSigs, "warn-objc-methodsigs",
|
||||
"Warn about Objective-C method signatures with type incompatibilities")
|
||||
"Warn about Objective-C method signatures with type incompatibilities",
|
||||
ObjCImplementation)
|
||||
|
||||
ANALYSIS(WarnObjCDealloc, "warn-objc-missing-dealloc",
|
||||
"Warn about Objective-C classes that lack a correct implementation of -dealloc")
|
||||
"Warn about Objective-C classes that lack a correct implementation of -dealloc",
|
||||
ObjCImplementation)
|
||||
|
||||
ANALYSIS(CheckerSimple, "checker-simple",
|
||||
"Perform simple path-sensitive checks.")
|
||||
"Perform simple path-sensitive checks.", Code)
|
||||
|
||||
ANALYSIS(CheckerCFRef, "checker-cfref",
|
||||
"Run the [Core] Foundation reference count checker")
|
||||
"Run the [Core] Foundation reference count checker", Code)
|
||||
|
||||
#undef ANALYSIS
|
||||
|
|
|
@ -414,9 +414,9 @@ ASTConsumer* clang::CreateAnalysisConsumer(Analyses* Beg, Analyses* End,
|
|||
|
||||
for ( ; Beg != End ; ++Beg)
|
||||
switch (*Beg) {
|
||||
#define ANALYSIS(NAME, CMD, DESC)\
|
||||
#define ANALYSIS(NAME, CMD, DESC, SCOPE)\
|
||||
case NAME:\
|
||||
C->addCodeAction(&Action ## NAME);\
|
||||
C->add ## SCOPE ## Action(&Action ## NAME);\
|
||||
break;
|
||||
#include "Analyses.def"
|
||||
default: break;
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
namespace clang {
|
||||
|
||||
enum Analyses {
|
||||
#define ANALYSIS(NAME, CMDFLAG, DESC) NAME,
|
||||
#define ANALYSIS(NAME, CMDFLAG, DESC, SCOPE) NAME,
|
||||
#include "Analyses.def"
|
||||
NumAnalyses
|
||||
};
|
||||
|
|
|
@ -162,7 +162,7 @@ AnalyzeAll("checker-opt-analyze-headers",
|
|||
static llvm::cl::list<Analyses>
|
||||
AnalysisList(llvm::cl::desc("Available Source Code Analyses:"),
|
||||
llvm::cl::values(
|
||||
#define ANALYSIS(NAME, CMDFLAG, DESC)\
|
||||
#define ANALYSIS(NAME, CMDFLAG, DESC, SCOPE)\
|
||||
clEnumValN(NAME, CMDFLAG, DESC),
|
||||
#include "Analyses.def"
|
||||
clEnumValEnd));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: clang -check-objc-methodsigs -verify %s
|
||||
// RUN: clang -warn-objc-methodsigs -verify %s
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
|
Loading…
Reference in New Issue