14 #ifndef LLVM_CLANG_AST_EVALUATEDEXPRVISITOR_H 15 #define LLVM_CLANG_AST_EVALUATEDEXPRVISITOR_H 21 #include "llvm/ADT/STLExtras.h" 29 template<
template <
typename>
class Ptr,
typename ImplClass>
35 #define PTR(CLASS) typename Ptr<CLASS>::type 86 return static_cast<ImplClass*>(
this)->VisitExpr(CE);
103 this->
Visit(SubStmt);
110 template <
typename ImplClass>
119 template <
typename ImplClass>
128 #endif // LLVM_CLANG_AST_EVALUATEDEXPRVISITOR_H const ASTContext & Context
Expr * getChosenSubExpr() const
getChosenSubExpr - Return the subexpression chosen according to the condition.
EvaluatedExprVisitor - This class visits 'Expr *'s.
Expr * getResultExpr()
Return the result expression of this controlling expression.
Specialize PointerLikeTypeTraits to allow LazyGenerationalUpdatePtr to be placed into a PointerUnion...
Stmt - This represents one statement.
Expr * getExprOperand() const
Defines the clang::Expr interface and subclasses for C++ expressions.
void VisitDesignatedInitExpr(PTR(DesignatedInitExpr) E)
Represents a C99 designated initializer expression.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Expr * getInit() const
Retrieve the initializer value.
A C++ typeid expression (C++ [expr.typeid]), which gets the type_info that corresponds to the supplie...
void VisitBlockExpr(PTR(BlockExpr) E)
capture_init_iterator capture_init_begin()
Retrieve the first initialization argument for this lambda expression (which initializes the first ca...
A C++ lambda expression, which produces a function object (of unspecified type) that can be invoked l...
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...
EvaluatedExprVisitor(const ASTContext &Context)
UnaryExprOrTypeTraitExpr - expression with either a type or (unevaluated) expression operand...
EvaluatedExprVisitorBase(const ASTContext &Context)
void VisitGenericSelectionExpr(PTR(GenericSelectionExpr) E)
BlockExpr - Adaptor class for mixing a BlockDecl with expressions.
ConstEvaluatedExprVisitor(const ASTContext &Context)
void VisitCXXTypeidExpr(PTR(CXXTypeidExpr) E)
void VisitCallExpr(PTR(CallExpr) CE)
void VisitDeclRefExpr(PTR(DeclRefExpr) E)
void VisitExpressionTraitExpr(PTR(ExpressionTraitExpr) E)
void VisitLambdaExpr(PTR(LambdaExpr) LE)
bool isValueDependent() const
isValueDependent - Determines whether this expression is value-dependent (C++ [temp.dep.constexpr]).
void VisitCXXNoexceptExpr(PTR(CXXNoexceptExpr) E)
An expression trait intrinsic.
Represents a C11 generic selection.
Dataflow Directional Tag Classes.
void VisitUnaryExprOrTypeTraitExpr(PTR(UnaryExprOrTypeTraitExpr) E)
bool isResultDependent() const
Whether this generic selection is result-dependent.
ConstEvaluatedExprVisitor - This class visits 'const Expr *'s.
void VisitCXXUuidofExpr(PTR(CXXUuidofExpr) E)
Represents a C++11 noexcept expression (C++ [expr.unary.noexcept]).
StmtVisitorBase - This class implements a simple visitor for Stmt subclasses.
Given a potentially-evaluated expression, this visitor visits all of its potentially-evaluated subexp...
Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate.h) and friends (in DeclFriend.h).
MemberExpr - [C99 6.5.2.3] Structure and Union Members.
ChooseExpr - GNU builtin-in function __builtin_choose_expr.
bool LE(InterpState &S, CodePtr OpPC)
void VisitMemberExpr(PTR(MemberExpr) E)
CallExpr - Represents a function call (C99 6.5.2.2, C++ [expr.call]).
void Visit(PTR(Stmt) S, ParamTys... P)
void VisitChooseExpr(PTR(ChooseExpr) E)
capture_init_iterator capture_init_end()
Retrieve the iterator pointing one past the last initialization argument for this lambda expression...
A reference to a declared variable, function, enum, etc.
Expr *const * const_capture_init_iterator
Const iterator that walks over the capture initialization arguments.
OffsetOfExpr - [C99 7.17] - This represents an expression of the form offsetof(record-type, member-designator).
A Microsoft C++ __uuidof expression, which gets the _GUID that corresponds to the supplied type or ex...
bool isPotentiallyEvaluated() const
Determine whether this typeid has a type operand which is potentially evaluated, per C++11 [expr...
void VisitOffsetOfExpr(PTR(OffsetOfExpr) E)
void VisitStmt(PTR(Stmt) S)
The basis case walks all of the children of the statement or expression, assuming they are all potent...