blob: 6c594ea721996fa45f33a6f3e25a2b7470c9b1f1 [file] [log] [blame]
Ted Kremenek52755612008-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 Kremenek4adc81e2008-08-13 04:27:00 +000018#include "clang/Analysis/PathSensitive/GRState.h"
Ted Kremenek52755612008-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 Kremenek4adc81e2008-08-13 04:27:00 +000031class GRStateManager;
Ted Kremenekcf118d42009-02-04 23:49:09 +000032class BugReporter;
33class GRExprEngine;
Ted Kremenek52755612008-03-27 17:17:22 +000034
35GRSimpleAPICheck* CreateBasicObjCFoundationChecks(ASTContext& Ctx,
Ted Kremenekcf118d42009-02-04 23:49:09 +000036 GRStateManager* VMgr,
37 BugReporter& BR);
Ted Kremenek04bc8762008-06-26 23:59:48 +000038
39GRSimpleAPICheck* CreateAuditCFNumberCreate(ASTContext& Ctx,
Ted Kremenekcf118d42009-02-04 23:49:09 +000040 GRStateManager* VMgr,
41 BugReporter& BR);
Ted Kremenekcfdf9b42008-09-18 21:25:13 +000042
Ted Kremenekcf118d42009-02-04 23:49:09 +000043void RegisterNSErrorChecks(BugReporter& BR, GRExprEngine &Eng);
Ted Kremenekcfdf9b42008-09-18 21:25:13 +000044
Ted Kremenek52755612008-03-27 17:17:22 +000045} // end clang namespace
46
47#endif