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.