clang: include/clang/Analysis/BodyFarm.h Source File (original) (raw)

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_CLANG_ANALYSIS_BODYFARM_H

15#define LLVM_CLANG_ANALYSIS_BODYFARM_H

16

19#include "llvm/ADT/DenseMap.h"

20#include

21

23

24class ASTContext;

25class FunctionDecl;

26class ObjCMethodDecl;

27class Stmt;

28class CodeInjector;

29

31public:

33

34

36

37

39

40

42

43

45

46private:

47 typedef llvm::DenseMap<const Decl *, std::optional<Stmt *>> BodyMap;

48

50 BodyMap Bodies;

52};

53}

54

55#endif

Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

BodyFarm(ASTContext &C, CodeInjector *injector)

BodyFarm(const BodyFarm &other)=delete

Remove copy constructor to avoid accidental copying.

BodyFarm & operator=(const BodyFarm &other)=delete

Delete copy assignment operator.

Stmt * getBody(const FunctionDecl *D)

Factory method for creating bodies for ordinary functions.

CodeInjector is an interface which is responsible for injecting AST of function definitions that may ...

Represents a function declaration or definition.

ObjCMethodDecl - Represents an instance or class method declaration.

Stmt - This represents one statement.

The JSON file list parser is used to communicate input to InstallAPI.