clang API Documentation

Public Member Functions | Public Attributes
clang::Sema::ExpressionEvaluationContextRecord Struct Reference

Data structure used to record current or nested expression evaluation contexts. More...

#include <Sema.h>

Collaboration diagram for clang::Sema::ExpressionEvaluationContextRecord:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ExpressionEvaluationContextRecord (ExpressionEvaluationContext Context, unsigned NumCleanupObjects, bool ParentNeedsCleanups, Decl *LambdaContextDecl, bool IsDecltype)
 ~ExpressionEvaluationContextRecord ()
LambdaMangleContextgetLambdaMangleContext ()
 Retrieve the mangling context for lambdas.

Public Attributes

ExpressionEvaluationContext Context
 The expression evaluation context.
bool ParentNeedsCleanups
 Whether the enclosing context needed a cleanup.
bool IsDecltype
 Whether we are in a decltype expression.
unsigned NumCleanupObjects
 The number of active cleanup objects when we entered this expression evaluation context.
llvm::SmallPtrSet< Expr *, 8 > SavedMaybeODRUseExprs
llvm::SmallVector< LambdaExpr *, 2 > Lambdas
 The lambdas that are present within this context, if it is indeed an unevaluated context.
DeclLambdaContextDecl
 The declaration that provides context for the lambda expression if the normal declaration context does not suffice, e.g., in a default function argument.
LambdaMangleContextLambdaMangle
 The context information used to mangle lambda expressions within this context.
llvm::SmallVector< CallExpr *, 8 > DelayedDecltypeCalls
 If we are processing a decltype type, a set of call expressions for which we have deferred checking the completeness of the return type.
llvm::SmallVector
< CXXBindTemporaryExpr *, 8 > 
DelayedDecltypeBinds
 If we are processing a decltype type, a set of temporary binding expressions for which we have deferred checking the destructor.

Detailed Description

Data structure used to record current or nested expression evaluation contexts.

Definition at line 576 of file Sema.h.


Constructor & Destructor Documentation

clang::Sema::ExpressionEvaluationContextRecord::ExpressionEvaluationContextRecord ( ExpressionEvaluationContext  Context,
unsigned  NumCleanupObjects,
bool  ParentNeedsCleanups,
Decl LambdaContextDecl,
bool  IsDecltype 
) [inline]

Definition at line 616 of file Sema.h.

clang::Sema::ExpressionEvaluationContextRecord::~ExpressionEvaluationContextRecord ( ) [inline]

Definition at line 625 of file Sema.h.

References LambdaMangle.


Member Function Documentation

LambdaMangleContext& clang::Sema::ExpressionEvaluationContextRecord::getLambdaMangleContext ( ) [inline]

Retrieve the mangling context for lambdas.

Definition at line 630 of file Sema.h.

References LambdaContextDecl, and LambdaMangle.


Member Data Documentation

The expression evaluation context.

Definition at line 578 of file Sema.h.

Referenced by ClassifyImplicitMemberAccess(), and clang::Sema::PopExpressionEvaluationContext().

If we are processing a decltype type, a set of temporary binding expressions for which we have deferred checking the destructor.

Definition at line 614 of file Sema.h.

Referenced by clang::Sema::ActOnDecltypeExpression().

If we are processing a decltype type, a set of call expressions for which we have deferred checking the completeness of the return type.

Definition at line 610 of file Sema.h.

Referenced by clang::Sema::ActOnDecltypeExpression().

Whether we are in a decltype expression.

Definition at line 584 of file Sema.h.

Referenced by clang::Sema::ActOnDecltypeExpression().

The declaration that provides context for the lambda expression if the normal declaration context does not suffice, e.g., in a default function argument.

Definition at line 599 of file Sema.h.

Referenced by getLambdaMangleContext().

The context information used to mangle lambda expressions within this context.

This mangling information is allocated lazily, since most contexts do not have lambda expressions.

Definition at line 606 of file Sema.h.

Referenced by getLambdaMangleContext(), and ~ExpressionEvaluationContextRecord().

The lambdas that are present within this context, if it is indeed an unevaluated context.

Definition at line 594 of file Sema.h.

Referenced by clang::Sema::PopExpressionEvaluationContext().

The number of active cleanup objects when we entered this expression evaluation context.

Definition at line 588 of file Sema.h.

Referenced by clang::Sema::PopExpressionEvaluationContext().

Whether the enclosing context needed a cleanup.

Definition at line 581 of file Sema.h.

Referenced by clang::Sema::PopExpressionEvaluationContext().

Definition at line 590 of file Sema.h.

Referenced by clang::Sema::PopExpressionEvaluationContext().


The documentation for this struct was generated from the following file: