clang: include/clang/AST/EvaluatedExprVisitor.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_CLANG_AST_EVALUATEDEXPRVISITOR_H

15#define LLVM_CLANG_AST_EVALUATEDEXPRVISITOR_H

16

21#include "llvm/ADT/STLExtras.h"

22

24

26

27

28

29template<template <typename> class Ptr, typename ImplClass>

31protected:

33

34public:

35

36

38#define PTR(CLASS) typename Ptr::type

39

41

42

43

51

56

64

66

67

68

70 return;

71

72

74 }

75

81

86

91

93

95 E = LE->capture_init_end();

96 I != E; ++I)

97 if (*I)

99 }

100

101

102

104 for (auto *SubStmt : S->children())

105 if (SubStmt)

106 this->Visit(SubStmt);

107 }

108

111 if (auto SubStmt = If->getNondiscardedCase(Context)) {

112 if (*SubStmt)

113 this->Visit(*SubStmt);

114 return;

115 }

116 }

117

119 }

120

121 ImplClass &getDerived() { return *static_cast<ImplClass *>(this); }

122

123#undef PTR

124};

125

126

127template

134

135

136template

143}

144

145#endif

Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate....

Defines the clang::Expr interface and subclasses for C++ expressions.

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

BlockExpr - Adaptor class for mixing a BlockDecl with expressions.

Represents a C++11 noexcept expression (C++ [expr.unary.noexcept]).

A C++ typeid expression (C++ [expr.typeid]), which gets the type_info that corresponds to the supplie...

Expr * getExprOperand() const

bool isPotentiallyEvaluated() const

Determine whether this typeid has a type operand which is potentially evaluated, per C++11 [expr....

A Microsoft C++ __uuidof expression, which gets the _GUID that corresponds to the supplied type or ex...

CallExpr - Represents a function call (C99 6.5.2.2, C++ [expr.call]).

bool isUnevaluatedBuiltinCall(const ASTContext &Ctx) const

Returns true if this is a call to a builtin which does not evaluate side-effects within its arguments...

ChooseExpr - GNU builtin-in function __builtin_choose_expr.

Expr * getChosenSubExpr() const

getChosenSubExpr - Return the subexpression chosen according to the condition.

ConstEvaluatedExprVisitor(const ASTContext &Context)

Definition EvaluatedExprVisitor.h:140

A reference to a declared variable, function, enum, etc.

Represents a C99 designated initializer expression.

Expr * getInit() const

Retrieve the initializer value.

void VisitBlockExpr(PTR(BlockExpr) E)

Definition EvaluatedExprVisitor.h:48

EvaluatedExprVisitorBase(const ASTContext &Context)

Definition EvaluatedExprVisitor.h:40

bool shouldVisitDiscardedStmt() const

Definition EvaluatedExprVisitor.h:37

void VisitStmt(PTR(Stmt) S)

The basis case walks all of the children of the statement or expression, assuming they are all potent...

Definition EvaluatedExprVisitor.h:103

void VisitExpressionTraitExpr(PTR(ExpressionTraitExpr) E)

Definition EvaluatedExprVisitor.h:47

void VisitCXXNoexceptExpr(PTR(CXXNoexceptExpr) E)

Definition EvaluatedExprVisitor.h:50

void VisitMemberExpr(PTR(MemberExpr) E)

Definition EvaluatedExprVisitor.h:52

void VisitCallExpr(PTR(CallExpr) CE)

Definition EvaluatedExprVisitor.h:87

void VisitCXXUuidofExpr(PTR(CXXUuidofExpr) E)

Definition EvaluatedExprVisitor.h:49

void VisitCXXTypeidExpr(PTR(CXXTypeidExpr) E)

Definition EvaluatedExprVisitor.h:82

void VisitGenericSelectionExpr(PTR(GenericSelectionExpr) E)

Definition EvaluatedExprVisitor.h:65

void VisitDeclRefExpr(PTR(DeclRefExpr) E)

Definition EvaluatedExprVisitor.h:44

void VisitOffsetOfExpr(PTR(OffsetOfExpr) E)

Definition EvaluatedExprVisitor.h:45

void VisitIfStmt(PTR(IfStmt) If)

Definition EvaluatedExprVisitor.h:109

void VisitDesignatedInitExpr(PTR(DesignatedInitExpr) E)

Definition EvaluatedExprVisitor.h:76

void VisitUnaryExprOrTypeTraitExpr(PTR(UnaryExprOrTypeTraitExpr) E)

Definition EvaluatedExprVisitor.h:46

ImplClass & getDerived()

Definition EvaluatedExprVisitor.h:121

void VisitChooseExpr(PTR(ChooseExpr) E)

Definition EvaluatedExprVisitor.h:57

void VisitLambdaExpr(PTR(LambdaExpr) LE)

Definition EvaluatedExprVisitor.h:92

const ASTContext & Context

Definition EvaluatedExprVisitor.h:32

EvaluatedExprVisitor(const ASTContext &Context)

Definition EvaluatedExprVisitor.h:131

bool isValueDependent() const

Determines whether the value of this expression depends on.

An expression trait intrinsic.

Represents a C11 generic selection.

Expr * getResultExpr()

Return the result expression of this controlling expression.

bool isResultDependent() const

Whether this generic selection is result-dependent.

IfStmt - This represents an if/then/else.

A C++ lambda expression, which produces a function object (of unspecified type) that can be invoked l...

Expr *const * const_capture_init_iterator

Const iterator that walks over the capture initialization arguments.

MemberExpr - [C99 6.5.2.3] Structure and Union Members.

OffsetOfExpr - [C99 7.17] - This represents an expression of the form offsetof(record-type,...

StmtVisitorBase - This class implements a simple visitor for Stmt subclasses.

void Visit(PTR(Stmt) S, ParamTys... P)

Stmt - This represents one statement.

UnaryExprOrTypeTraitExpr - expression with either a type or (unevaluated) expression operand.

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

@ If

'if' clause, allowed on all the Compute Constructs, Data Constructs, Executable Constructs,...

Diagnostic wrappers for TextAPI types for error reporting.