clang 22.0.0git
ExprClassification.cpp File Reference
#include "clang/AST/Expr.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "llvm/Support/ErrorHandling.h"
#include "clang/AST/StmtNodes.inc"

Go to the source code of this file.

Macros

#define ABSTRACT_STMT(Kind)
#define STMT(Kind, Base)
#define EXPR(Kind, Base)

Typedefs

using Cl = Expr::Classification

Functions

static Cl::Kinds ClassifyInternal (ASTContext &Ctx, const Expr *E)
static Cl::Kinds ClassifyDecl (ASTContext &Ctx, const Decl *D)
 ClassifyDecl - Return the classification of an expression referencing the given declaration.
static Cl::Kinds ClassifyUnnamed (ASTContext &Ctx, QualType T)
 ClassifyUnnamed - Return the classification of an expression yielding an unnamed value of the given type.
static Cl::Kinds ClassifyMemberExpr (ASTContext &Ctx, const MemberExpr *E)
static Cl::Kinds ClassifyBinaryOp (ASTContext &Ctx, const BinaryOperator *E)
static Cl::Kinds ClassifyConditional (ASTContext &Ctx, const Expr *trueExpr, const Expr *falseExpr)
static Cl::ModifiableType IsModifiable (ASTContext &Ctx, const Expr *E, Cl::Kinds Kind, SourceLocation &Loc)
static Cl::Kinds ClassifyTemporary (QualType T)
 Classify an expression which creates a temporary, based on its type.
static Cl::Kinds ClassifyExprValueKind (const LangOptions &Lang, const Expr *E, ExprValueKind Kind)

Macro Definition Documentation

◆ ABSTRACT_STMT

#define ABSTRACT_STMT ( Kind)

◆ EXPR

#define EXPR ( Kind,
Base )

◆ STMT

#define STMT ( Kind,
Base )
Value:
case Expr::Kind##Class:

Typedef Documentation

◆ Cl

Definition at line 24 of file ExprClassification.cpp.

Function Documentation

◆ ClassifyBinaryOp()

◆ ClassifyConditional()

Cl::Kinds ClassifyConditional ( ASTContext & Ctx,
const Expr * trueExpr,
const Expr * falseExpr )
static

◆ ClassifyDecl()

Cl::Kinds ClassifyDecl ( ASTContext & Ctx,
const Decl * D )
static

ClassifyDecl - Return the classification of an expression referencing the given declaration.

Definition at line 488 of file ExprClassification.cpp.

References clang::Expr::Classification::CL_LValue, clang::Expr::Classification::CL_MemberFunction, clang::Expr::Classification::CL_PRValue, clang::ASTContext::getLangOpts(), and clang::isa().

Referenced by ClassifyInternal().

◆ ClassifyExprValueKind()

◆ ClassifyInternal()

◆ ClassifyMemberExpr()

◆ ClassifyTemporary()

Cl::Kinds ClassifyTemporary ( QualType T)
static

◆ ClassifyUnnamed()

Cl::Kinds ClassifyUnnamed ( ASTContext & Ctx,
QualType T )
static

ClassifyUnnamed - Return the classification of an expression yielding an unnamed value of the given type.

This applies in particular to function calls and casts.

Definition at line 522 of file ExprClassification.cpp.

References clang::Expr::Classification::CL_LValue, clang::Expr::Classification::CL_PRValue, clang::Expr::Classification::CL_XValue, ClassifyTemporary(), clang::ASTContext::getLangOpts(), and clang::T.

Referenced by ClassifyInternal().

◆ IsModifiable()