reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/AST/ExprClassification.cpp
  106   switch (E->getStmtClass()) {
  147     return !E->isLValue() ? ClassifyTemporary(E->getType()) : Cl::CL_LValue;
  147     return !E->isLValue() ? ClassifyTemporary(E->getType()) : Cl::CL_LValue;
  199     return ClassifyInternal(Ctx, cast<ConstantExpr>(E)->getSubExpr());
  204                  cast<SubstNonTypeTemplateParmExpr>(E)->getReplacement());
  211     if (cast<ArraySubscriptExpr>(E)->getBase()->getType()->isVectorType())
  212       return ClassifyInternal(Ctx, cast<ArraySubscriptExpr>(E)->getBase());
  216       auto *Base = cast<ArraySubscriptExpr>(E)->getBase()->IgnoreImpCasts();
  225     if (E->getType() == Ctx.UnknownAnyTy)
  226       return isa<FunctionDecl>(cast<DeclRefExpr>(E)->getDecl())
  228     return ClassifyDecl(Ctx, cast<DeclRefExpr>(E)->getDecl());
  232     return ClassifyMemberExpr(Ctx, cast<MemberExpr>(E));
  235     switch (cast<UnaryOperator>(E)->getOpcode()) {
  244       return ClassifyInternal(Ctx, cast<UnaryOperator>(E)->getSubExpr());
  250       const Expr *Op = cast<UnaryOperator>(E)->getSubExpr()->IgnoreParens();
  271     return ClassifyExprValueKind(Lang, E, E->getValueKind());
  271     return ClassifyExprValueKind(Lang, E, E->getValueKind());
  275     return ClassifyExprValueKind(Lang, E,
  276                                  cast<PseudoObjectExpr>(E)->getValueKind());
  281     return ClassifyExprValueKind(Lang, E, E->getValueKind());
  281     return ClassifyExprValueKind(Lang, E, E->getValueKind());
  286     return ClassifyInternal(Ctx, cast<ParenExpr>(E)->getSubExpr());
  292     if (cast<GenericSelectionExpr>(E)->isResultDependent())
  294     return ClassifyInternal(Ctx,cast<GenericSelectionExpr>(E)->getResultExpr());
  300       return ClassifyBinaryOp(Ctx, cast<BinaryOperator>(E));
  308     return ClassifyUnnamed(Ctx, cast<CallExpr>(E)->getCallReturnType(Ctx));
  312         Ctx, cast<CXXRewrittenBinaryOperator>(E)->getSemanticForm());
  316     return ClassifyInternal(Ctx, cast<ChooseExpr>(E)->getChosenSubExpr());
  321     if (cast<ExtVectorElementExpr>(E)->containsDuplicateElements())
  323     if (cast<ExtVectorElementExpr>(E)->isArrow())
  325     return ClassifyInternal(Ctx, cast<ExtVectorElementExpr>(E)->getBase());
  329     return ClassifyInternal(Ctx, cast<CXXDefaultArgExpr>(E)->getExpr());
  333     return ClassifyInternal(Ctx, cast<CXXDefaultInitExpr>(E)->getExpr());
  337     return ClassifyInternal(Ctx, cast<CXXBindTemporaryExpr>(E)->getSubExpr());
  341     return ClassifyInternal(Ctx, cast<ExprWithCleanups>(E)->getSubExpr());
  354     return ClassifyUnnamed(Ctx, cast<ExplicitCastExpr>(E)->getTypeAsWritten());
  358                       cast<CXXUnresolvedConstructExpr>(E)->getTypeAsWritten());
  362     const auto *co = cast<BinaryConditionalOperator>(E);
  369     const auto *co = cast<ConditionalOperator>(E);
  377           cast<ObjCMessageExpr>(E)->getMethodDecl()) {
  392     return ClassifyUnnamed(Ctx, E->getType());
  395     return ClassifyInternal(Ctx, cast<DesignatedInitExpr>(E)->getInit());
  398     const CompoundStmt *S = cast<StmtExpr>(E)->getSubStmt();
  408     return ClassifyInternal(Ctx, cast<PackExpansionExpr>(E)->getPattern());
  411     return cast<MaterializeTemporaryExpr>(E)->isBoundToLvalueReference()
  420     if (E->isRValue())
  421       return ClassifyExprValueKind(Lang, E, E->getValueKind());
  421       return ClassifyExprValueKind(Lang, E, E->getValueKind());
  422     assert(cast<InitListExpr>(E)->getNumInits() == 1 &&
  424     return ClassifyInternal(Ctx, cast<InitListExpr>(E)->getInit(0));
  428     return ClassifyInternal(Ctx, cast<CoroutineSuspendExpr>(E)->getResumeExpr());