clang
3.9.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
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/AST/DeclBase.h
"
19
#include "
clang/Basic/LLVM.h
"
20
#include "llvm/ADT/DenseMap.h"
21
#include "llvm/ADT/Optional.h"
22
23
namespace
clang {
24
25
class
ASTContext
;
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
FunctionDecl - An instance of this class is created to represent a function declaration or definition...
Definition:
Decl.h:1561
Stmt
clang::BodyFarm
Definition:
BodyFarm.h:32
clang::ObjCMethodDecl
ObjCMethodDecl - Represents an instance or class method declaration.
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:92
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::ASTContext
friend class ASTContext
Definition:
Type.h:4178
DeclBase.h
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:352
Generated on Wed Aug 31 2016 16:57:56 for clang by
1.8.6