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.