clang: lib/AST/ExprClassification.cpp File Reference (original) (raw)

#include "[clang/AST/Expr.h](Expr%5F8h%5Fsource.html)"
#include "[clang/AST/ASTContext.h](ASTContext%5F8h%5Fsource.html)"
#include "[clang/AST/DeclCXX.h](DeclCXX%5F8h%5Fsource.html)"
#include "[clang/AST/DeclObjC.h](DeclObjC%5F8h%5Fsource.html)"
#include "[clang/AST/DeclTemplate.h](DeclTemplate%5F8h%5Fsource.html)"
#include "[clang/AST/ExprCXX.h](ExprCXX%5F8h%5Fsource.html)"
#include "[clang/AST/ExprObjC.h](ExprObjC%5F8h%5Fsource.html)"
#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) case Expr::Kind##Class:
#define EXPR(Kind, Base)
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)

ABSTRACT_STMT

| #define ABSTRACT_STMT | ( | | Kind | ) | | ---------------------- | - | | ----------------------------------------------------------------------- | - |

EXPR

STMT

Cl

ClassifyBinaryOp()

Definition at line 602 of file ExprClassification.cpp.

References clang::Expr::Classification::CL_LValue, clang::Expr::Classification::CL_MemberFunction, clang::Expr::Classification::CL_PRValue, ClassifyInternal(), E, clang::ASTContext::getLangOpts(), clang::Expr::getObjectKind(), clang::Expr::getType(), clang::Expr::hasPlaceholderType(), clang::Type::isFunctionType(), and clang::OK_ObjCProperty.

Referenced by ClassifyInternal().

ClassifyConditional()

ClassifyDecl()

ClassifyExprValueKind()

ClassifyInternal()

Definition at line 108 of file ExprClassification.cpp.

References clang::Expr::Classification::CL_ArrayTemporary, clang::Expr::Classification::CL_ClassTemporary, clang::Expr::Classification::CL_DuplicateVectorComponents, clang::Expr::Classification::CL_LValue, clang::Expr::Classification::CL_ObjCMessageRValue, clang::Expr::Classification::CL_PRValue, clang::Expr::Classification::CL_SubObjCPropertySetting, clang::Expr::Classification::CL_XValue, ClassifyBinaryOp(), ClassifyConditional(), ClassifyDecl(), ClassifyExprValueKind(), ClassifyInternal(), ClassifyMemberExpr(), ClassifyTemporary(), ClassifyUnnamed(), E, clang::ASTContext::getLangOpts(), clang::Stmt::getStmtClass(), clang::Expr::getType(), clang::Expr::getValueKind(), clang::Expr::IgnoreParens(), clang::Expr::isLValue(), clang::Expr::isPRValue(), clang::Stmt::NoStmtClass, and clang::ASTContext::UnknownAnyTy.

Referenced by ClassifyBinaryOp(), ClassifyConditional(), ClassifyInternal(), and ClassifyMemberExpr().

ClassifyMemberExpr()

Definition at line 540 of file ExprClassification.cpp.

References clang::Expr::Classification::CL_LValue, clang::Expr::Classification::CL_MemberFunction, clang::Expr::Classification::CL_PRValue, clang::Expr::Classification::CL_SubObjCPropertySetting, ClassifyInternal(), E, clang::ASTContext::getLangOpts(), clang::Expr::getType(), clang::Value::getType(), clang::Expr::IgnoreParenImpCasts(), clang::Expr::IgnoreParens(), clang::Type::isReferenceType(), clang::Member, and clang::ASTContext::UnknownAnyTy.

Referenced by ClassifyInternal().

ClassifyTemporary()

ClassifyUnnamed()

IsModifiable()

Definition at line 669 of file ExprClassification.cpp.

References clang::Expr::Classification::CL_LValue, clang::Expr::Classification::CL_PRValue, clang::Expr::Classification::CM_ArrayType, clang::Expr::Classification::CM_ConstAddrSpace, clang::Expr::Classification::CM_ConstQualified, clang::Expr::Classification::CM_ConstQualifiedField, clang::Expr::Classification::CM_Function, clang::Expr::Classification::CM_IncompleteType, clang::Expr::Classification::CM_LValueCast, clang::Expr::Classification::CM_Modifiable, clang::Expr::Classification::CM_NoSetterProperty, clang::Expr::Classification::CM_RValue, E, clang::Qualifiers::getAddressSpace(), clang::CanQual< T >::getAs(), clang::ASTContext::getCanonicalType(), clang::ASTContext::getLangOpts(), clang::CanQual< T >::getQualifiers(), clang::Expr::getType(), clang::Expr::IgnoreParens(), clang::CanQual< T >::isConstQualified(), clang::Type::isFunctionType(), Loc, and clang::opencl_constant.