#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"
usingnamespaceclang;
Cl;
static Cl::Kinds ClassifyInternal(ASTContext &Ctx, const Expr *E);
static Cl::Kinds ClassifyDecl(ASTContext &Ctx, const Decl *D);
static Cl::Kinds ClassifyUnnamed(ASTContext &Ctx, QualType T);
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);
Cl Expr::ClassifyImpl(ASTContext &Ctx, SourceLocation *Loc) const { … }
static Cl::Kinds ClassifyTemporary(QualType T) { … }
static Cl::Kinds ClassifyExprValueKind(const LangOptions &Lang,
const Expr *E,
ExprValueKind Kind) { … }
static Cl::Kinds ClassifyInternal(ASTContext &Ctx, const Expr *E) { … }
static Cl::Kinds ClassifyDecl(ASTContext &Ctx, const Decl *D) { … }
static Cl::Kinds ClassifyUnnamed(ASTContext &Ctx, QualType T) { … }
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 *True,
const Expr *False) { … }
static Cl::ModifiableType IsModifiable(ASTContext &Ctx, const Expr *E,
Cl::Kinds Kind, SourceLocation &Loc) { … }
Expr::LValueClassification Expr::ClassifyLValue(ASTContext &Ctx) const { … }
Expr::isModifiableLvalueResult
Expr::isModifiableLvalue(ASTContext &Ctx, SourceLocation *Loc) const { … }