15 #ifndef LLVM_CLANG_AST_EVALUATEDEXPRVISITOR_H
16 #define LLVM_CLANG_AST_EVALUATEDEXPRVISITOR_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);
101 for (
auto *SubStmt : S->children())
103 this->
Visit(SubStmt);
110 template<
typename ImplClass>
119 template<
typename ImplClass>
129 #endif // LLVM_CLANG_AST_EVALUATEDEXPRVISITOR_H
const ASTContext & Context
EvaluatedExprVisitor - This class visits 'Expr *'s.
bool isResultDependent() const
Whether this generic selection is result-dependent.
Expr * getInit() const
Retrieve the initializer value.
const Expr * getResultExpr() const
The generic selection's result expression.
Expr *const * const_capture_init_iterator
Const iterator that walks over the capture initialization arguments.
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 ...
bool isPotentiallyEvaluated() const
Determine whether this typeid has a type operand which is potentially evaluated, per C++11 [expr...
A C++ typeid expression (C++ [expr.typeid]), which gets the type_info that corresponds to the supplie...
Expr * getChosenSubExpr() const
getChosenSubExpr - Return the subexpression chosen according to the condition.
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...
Expr * getExprOperand() const
bool isValueDependent() const
isValueDependent - Determines whether this expression is value-dependent (C++ [temp.dep.constexpr]).
A C++ lambda expression, which produces a function object (of unspecified type) that can be invoked l...
detail::InMemoryDirectory::const_iterator I
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)
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...
void VisitLambdaExpr(PTR(LambdaExpr) LE)
void VisitCXXNoexceptExpr(PTR(CXXNoexceptExpr) E)
An expression trait intrinsic.
Represents a C11 generic selection.
void VisitUnaryExprOrTypeTraitExpr(PTR(UnaryExprOrTypeTraitExpr) E)
detail::InMemoryDirectory::const_iterator E
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.
void VisitMemberExpr(PTR(MemberExpr) E)
CallExpr - Represents a function call (C99 6.5.2.2, C++ [expr.call]).
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.
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...
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...