//===-- Analyses.def - Metadata about Static Analyses -----------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
//  This file defines the set of static analyses used by AnalysisConsumer.
//
//===----------------------------------------------------------------------===//

#ifndef ANALYSIS
#define ANALYSIS(NAME, CMDFLAG, DESC, SCOPE)
#endif

ANALYSIS(CFGDump, "cfg-dump",
         "Display Control-Flow Graphs", Code)

ANALYSIS(CFGView, "cfg-view",
         "View Control-Flow Graphs using GraphViz", Code)

ANALYSIS(DisplayLiveVariables, "dump-live-variables",
         "Print results of live variable analysis", Code)

ANALYSIS(WarnDeadStores, "warn-dead-stores",
         "Warn about stores to dead variables", Code)

ANALYSIS(WarnUninitVals, "warn-uninit-values",
         "Warn about uses of uninitialized variables", Code)

ANALYSIS(WarnObjCMethSigs, "warn-objc-methodsigs",
 "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",
 ObjCImplementation)
 
ANALYSIS(WarnObjCUnusedIvars, "warn-objc-unused-ivars",
  "Warn about private ivars that are never used", ObjCImplementation)

ANALYSIS(CheckerSimple, "checker-simple",
         "Perform simple path-sensitive checks.", Code)

ANALYSIS(CheckerCFRef, "checker-cfref",
         "Run the [Core] Foundation reference count checker", Code)


#ifndef ANALYSIS_STORE
#define ANALYSIS_STORE(NAME, CMDFLAG, DESC)
#endif

ANALYSIS_STORE(BasicStore, "basic", "Use basic analyzer store")
ANALYSIS_STORE(RegionStore, "region", "Use region-based analyzer store")

#ifndef ANALYSIS_DIAGNOSTICS
#define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATEFN)
#endif

ANALYSIS_DIAGNOSTICS(HTML,  "html",  "Output analysis results using HTML",   CreateHTMLDiagnosticClient)
ANALYSIS_DIAGNOSTICS(PLIST, "plist", "Output analysis results using Plists", CreatePlistDiagnosticClient)

#undef ANALYSIS
#undef ANALYSIS_STORE
#undef ANALYSIS_DIAGNOSTICS


