blob: 6c594ea721996fa45f33a6f3e25a2b7470c9b1f1 [file] [log] [blame]
Ted Kremenek7a681942008-03-27 17:17:22 +00001//== BasicObjCFoundationChecks.h - Simple Apple-Foundation checks -*- C++ -*--//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines BasicObjCFoundationChecks, a class that encapsulates
11// a set of simple checks to run on Objective-C code using Apple's Foundation
12// classes.
13//
14//===----------------------------------------------------------------------===//
15
16#include "clang/Analysis/PathSensitive/ExplodedGraph.h"
17#include "clang/Analysis/PathSensitive/GRSimpleAPICheck.h"
Ted Kremenekabd89ac2008-08-13 04:27:00 +000018#include "clang/Analysis/PathSensitive/GRState.h"
Ted Kremenek7a681942008-03-27 17:17:22 +000019#include "clang/Analysis/PathDiagnostic.h"
20#include "clang/AST/Expr.h"
21#include "clang/AST/ASTContext.h"
22#include "llvm/Support/Compiler.h"
23
24#ifndef LLVM_CLANG_ANALYSIS_BASICOBJCFOUNDATIONCHECKS
25#define LLVM_CLANG_ANALYSIS_BASICOBJCFOUNDATIONCHECKS
26
27namespace clang {
28
29class GRSimpleAPICheck;
30class ASTContext;
Ted Kremenekabd89ac2008-08-13 04:27:00 +000031class GRStateManager;
Ted Kremenekbf6babf2009-02-04 23:49:09 +000032class BugReporter;
33class GRExprEngine;
Ted Kremenek7a681942008-03-27 17:17:22 +000034
35GRSimpleAPICheck* CreateBasicObjCFoundationChecks(ASTContext& Ctx,
Ted Kremenekbf6babf2009-02-04 23:49:09 +000036 GRStateManager* VMgr,
37 BugReporter& BR);
Ted Kremenekc1290552008-06-26 23:59:48 +000038
39GRSimpleAPICheck* CreateAuditCFNumberCreate(ASTContext& Ctx,
Ted Kremenekbf6babf2009-02-04 23:49:09 +000040 GRStateManager* VMgr,
41 BugReporter& BR);
Ted Kremenekb3538ab2008-09-18 21:25:13 +000042
Ted Kremenekbf6babf2009-02-04 23:49:09 +000043void RegisterNSErrorChecks(BugReporter& BR, GRExprEngine &Eng);
Ted Kremenekb3538ab2008-09-18 21:25:13 +000044
Ted Kremenek7a681942008-03-27 17:17:22 +000045} // end clang namespace
46
47#endif