clang
3.7.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
work
release_test
rc4
llvm.src
tools
clang
lib
Analysis
BodyFarm.h
Go to the documentation of this file.
1
//== BodyFarm.h - Factory for conjuring up fake bodies -------------*- 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
// BodyFarm is a factory for creating faux implementations for functions/methods
11
// for analysis purposes.
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_CLANG_LIB_ANALYSIS_BODYFARM_H
16
#define LLVM_CLANG_LIB_ANALYSIS_BODYFARM_H
17
18
#include "
clang/Basic/LLVM.h
"
19
#include "llvm/ADT/DenseMap.h"
20
#include "llvm/ADT/Optional.h"
21
22
namespace
clang {
23
24
class
ASTContext;
25
class
Decl;
26
class
FunctionDecl;
27
class
ObjCMethodDecl;
28
class
ObjCPropertyDecl;
29
class
Stmt
;
30
class
CodeInjector;
31
32
class
BodyFarm
{
33
public
:
34
BodyFarm
(
ASTContext
&C,
CodeInjector
*injector) : C(C), Injector(injector) {}
35
36
/// Factory method for creating bodies for ordinary functions.
37
Stmt
*
getBody
(
const
FunctionDecl
*D);
38
39
/// Factory method for creating bodies for Objective-C properties.
40
Stmt
*
getBody
(
const
ObjCMethodDecl
*D);
41
42
private
:
43
typedef
llvm::DenseMap<const Decl *, Optional<Stmt *> > BodyMap;
44
45
ASTContext
&C;
46
BodyMap Bodies;
47
CodeInjector
*Injector;
48
};
49
}
50
51
#endif
clang::FunctionDecl
Definition:
Decl.h:1524
Stmt
clang::BodyFarm
Definition:
BodyFarm.h:32
clang::ObjCMethodDecl
Definition:
DeclObjC.h:113
clang::ASTContext
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition:
ASTContext.h:89
LLVM.h
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
clang::BodyFarm::BodyFarm
BodyFarm(ASTContext &C, CodeInjector *injector)
Definition:
BodyFarm.h:34
clang::CodeInjector
CodeInjector is an interface which is responsible for injecting AST of function definitions that may ...
Definition:
CodeInjector.h:36
clang::BodyFarm::getBody
Stmt * getBody(const FunctionDecl *D)
Factory method for creating bodies for ordinary functions.
Definition:
BodyFarm.cpp:355
Generated on Mon Aug 31 2015 10:45:10 for clang by
1.8.6