clang
7.0.0
|
#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) case Expr::Kind##Class: |
#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. More... | |
static Cl::Kinds | ClassifyUnnamed (ASTContext &Ctx, QualType T) |
ClassifyUnnamed - Return the classification of an expression yielding an unnamed value of the given type. More... | |
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. More... | |
static Cl::Kinds | ClassifyExprValueKind (const LangOptions &Lang, const Expr *E, ExprValueKind Kind) |
#define ABSTRACT_STMT | ( | Kind | ) |
#define STMT | ( | Kind, | |
Base | |||
) | case Expr::Kind##Class: |
using Cl = Expr::Classification |
Definition at line 25 of file ExprClassification.cpp.
|
static |
Definition at line 529 of file ExprClassification.cpp.
|
static |
Definition at line 564 of file ExprClassification.cpp.
References clang::Expr::Classification::CL_PRValue, ClassifyInternal(), clang::ASTContext::getLangOpts(), clang::Expr::getType(), clang::Expr::IgnoreParenImpCasts(), and clang::Type::isVoidType().
|
static |
ClassifyDecl - Return the classification of an expression referencing the given declaration.
Definition at line 427 of file ExprClassification.cpp.
References clang::Expr::Classification::CL_LValue, clang::Expr::Classification::CL_MemberFunction, clang::Expr::Classification::CL_PRValue, and clang::ASTContext::getLangOpts().
|
static |
Definition at line 89 of file ExprClassification.cpp.
|
static |
Definition at line 103 of file ExprClassification.cpp.
Referenced by ClassifyConditional().
|
static |
Definition at line 472 of file ExprClassification.cpp.
Classify an expression which creates a temporary, based on its type.
Definition at line 78 of file ExprClassification.cpp.
References clang::Expr::Classification::CL_ArrayTemporary, clang::Expr::Classification::CL_ClassTemporary, clang::Expr::Classification::CL_PRValue, clang::Type::isArrayType(), and clang::Type::isRecordType().
Referenced by ClassifyUnnamed().
|
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 455 of file ExprClassification.cpp.
References clang::Expr::Classification::CL_LValue, clang::Expr::Classification::CL_PRValue, clang::Expr::Classification::CL_XValue, ClassifyTemporary(), clang::Type::getAs(), clang::ASTContext::getLangOpts(), and clang::Type::isLValueReferenceType().
|
static |
Definition at line 596 of file ExprClassification.cpp.