//===-- 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(SecuritySyntacticChecks, "analyzer-check-security-syntactic",
         "Perform quick security checks that require no data flow",
         Code)

ANALYSIS(LLVMConventionChecker, "analyzer-check-llvm-conventions",
  "Check code for LLVM codebase conventions (domain-specific)",
  TranslationUnit)

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

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

ANALYSIS(WarnObjCMethSigs, "analyzer-check-objc-methodsigs",
 "Warn about Objective-C method signatures with type incompatibilities",
 ObjCImplementation)

ANALYSIS(WarnObjCDealloc, "analyzer-check-objc-missing-dealloc",
 "Warn about Objective-C classes that lack a correct implementation of -dealloc",
 ObjCImplementation)
 
ANALYSIS(WarnObjCUnusedIvars, "analyzer-check-objc-unused-ivars",
  "Warn about private ivars that are never used", ObjCImplementation)

ANALYSIS(ObjCMemChecker, "analyzer-check-objc-mem",
         "Run the [Core] Foundation reference count checker", Code)

ANALYSIS(WarnSizeofPointer, "warn-sizeof-pointer",
         "Warn about unintended use of sizeof() on pointer expressions", Code)

ANALYSIS(InlineCall, "inline-call",
         "Experimental transfer function inling callees when its definition"
         " is available.", TranslationUnit)

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

ANALYSIS_STORE(BasicStore, "basic", "Use basic analyzer store", CreateBasicStoreManager)
ANALYSIS_STORE(RegionStore, "region", "Use region-based analyzer store", CreateRegionStoreManager)
ANALYSIS_STORE(FlatStore, "flat", "Use flat analyzer store", CreateFlatStoreManager)

#ifndef ANALYSIS_CONSTRAINTS
#define ANALYSIS_CONSTRAINTS(NAME, CMDFLAG, DESC, CREATFN)
#endif

ANALYSIS_CONSTRAINTS(BasicConstraints, "basic", "Use basic constraint tracking", CreateBasicConstraintManager)
ANALYSIS_CONSTRAINTS(RangeConstraints, "range", "Use constraint tracking of concrete value ranges", CreateRangeConstraintManager)

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

ANALYSIS_DIAGNOSTICS(HTML,  "html",  "Output analysis results using HTML",   CreateHTMLDiagnosticClient, false)
ANALYSIS_DIAGNOSTICS(PLIST, "plist", "Output analysis results using Plists", CreatePlistDiagnosticClient, true)
ANALYSIS_DIAGNOSTICS(PLIST_HTML, "plist-html", "Output analysis results using HTML wrapped with Plists", CreatePlistHTMLDiagnosticClient, true)

#undef ANALYSIS
#undef ANALYSIS_STORE
#undef ANALYSIS_CONSTRAINTS
#undef ANALYSIS_DIAGNOSTICS
#undef ANALYSIS_STORE

