Home | History | Annotate | Download | only in Sema

Lines Matching refs:BaseExpr

477 Sema::ActOnDependentMemberExpr(Expr *BaseExpr, QualType BaseType,
497 assert(BaseExpr && "cannot happen with implicit member accesses");
499 << BaseType << BaseExpr->getSourceRange() << NameInfo.getSourceRange();
508 // Get the type being accessed in BaseType. If this is an arrow, the BaseExpr
511 Context, BaseExpr, BaseType, IsArrow, OpLoc,
520 Expr *BaseExpr,
527 if (!BaseExpr)
546 bool Sema::CheckQualifiedMemberReference(Expr *BaseExpr,
562 if (!BaseExpr && !(*I)->isCXXInstanceMember())
579 DiagnoseQualifiedMemberReference(*this, BaseExpr, BaseType, SS,
639 Expr *BaseExpr,
645 SourceRange BaseRange = BaseExpr ? BaseExpr->getSourceRange() : SourceRange();
726 BaseExpr, BaseExpr->getType(), OpLoc, IsArrow, SS, SourceLocation(),
735 ExprResult &BaseExpr, bool &IsArrow,
881 BuildMSPropertyRefExpr(Sema &S, Expr *BaseExpr, bool IsArrow,
887 return new (S.Context) MSPropertyRefExpr(BaseExpr, PD, IsArrow,
947 Sema::BuildMemberReferenceExpr(Expr *BaseExpr, QualType BaseExprType,
966 if (!IsArrow && BaseExpr && BaseExpr->isRValue()) {
967 ExprResult Converted = TemporaryMaterializationConversion(BaseExpr);
970 BaseExpr = Converted.get();
985 if (S && BaseExpr && FD &&
987 isa<CXXThisExpr>(BaseExpr->IgnoreImpCasts()) &&
1000 if (!IsArrow && BaseExpr) {
1004 RetryExpr = ActOnStartCXXMemberReference(getCurScope(), BaseExpr,
1025 << (BaseExpr ? BaseExpr->getSourceRange() : SourceRange());
1036 if ((SS.isSet() || !BaseExpr ||
1037 (isa<CXXThisExpr>(BaseExpr) &&
1038 cast<CXXThisExpr>(BaseExpr)->isImplicit())) &&
1040 CheckQualifiedMemberReference(BaseExpr, BaseType, SS, R))
1052 BaseExpr, BaseExprType,
1074 if (!BaseExpr) {
1088 BaseExpr = BuildCXXThisExpr(Loc, BaseExprType, /*IsImplicit=*/true);
1096 return BuildFieldReferenceExpr(BaseExpr, IsArrow, OpLoc, SS, FD, FoundDecl,
1100 return BuildMSPropertyRefExpr(*this, BaseExpr, IsArrow, SS, PD,
1107 FoundDecl, BaseExpr,
1111 return BuildMemberExpr(BaseExpr, IsArrow, OpLoc, &SS, TemplateKWLoc, Var,
1128 return BuildMemberExpr(BaseExpr, IsArrow, OpLoc, &SS, TemplateKWLoc,
1135 return BuildMemberExpr(BaseExpr, IsArrow, OpLoc, &SS, TemplateKWLoc, Enum,
1155 BaseExpr, BaseExpr->getType(), IsArrow, OpLoc, SS, TemplateKWLoc,
1163 BaseExpr, IsArrow, OpLoc, &SS, TemplateKWLoc, Var, FoundDecl,
1243 ExprResult &BaseExpr, bool &IsArrow,
1247 assert(BaseExpr.get() && "no base expression");
1250 BaseExpr = S.PerformMemberExprBaseConversion(BaseExpr.get(), IsArrow);
1251 if (BaseExpr.isInvalid())
1254 QualType BaseType = BaseExpr
1280 << BaseType << int(IsArrow) << BaseExpr.get()->getSourceRange()
1288 << BaseType << BaseExpr.get()->getSourceRange();
1296 if (LookupMemberExprInRecord(S, R, BaseExpr.get(), RTy, OpLoc, IsArrow, SS,
1331 return new (S.Context) ObjCIsaExpr(BaseExpr.get(), IsArrow, MemberLoc,
1333 if (ShouldTryAgainWithRedefinitionType(S, BaseExpr))
1334 return LookupMemberExpr(S, R, BaseExpr, IsArrow, OpLoc, SS,
1341 BaseExpr.get()))
1378 << Member << BaseExpr.get()->getType()
1385 << BaseExpr.get()->getSourceRange();
1434 Expr *BaseExp = BaseExpr.get()->IgnoreParenImpCasts();
1457 IV, IV->getUsageType(BaseType), MemberLoc, OpLoc, BaseExpr.get(),
1479 BaseExpr = S.DefaultLvalueConversion(BaseExpr.get());
1480 if (BaseExpr.isInvalid())
1484 BaseExpr.get()->getType()));
1503 OK_ObjCProperty, MemberLoc, BaseExpr.get());
1519 OK_ObjCProperty, MemberLoc, BaseExpr.get());
1524 if (IsArrow && ShouldTryAgainWithRedefinitionType(S, BaseExpr))
1525 return LookupMemberExpr(S, R, BaseExpr, IsArrow, OpLoc, SS,
1537 if (ShouldTryAgainWithRedefinitionType(S, BaseExpr))
1538 return LookupMemberExpr(S, R, BaseExpr, IsArrow, OpLoc, SS,
1576 OK_ObjCProperty, MemberLoc, BaseExpr.get());
1579 if (ShouldTryAgainWithRedefinitionType(S, BaseExpr))
1580 return LookupMemberExpr(S, R, BaseExpr, IsArrow, OpLoc, SS,
1588 return S.HandleExprPropertyRefExpr(OPT, BaseExpr.get(), OpLoc, MemberName,
1601 if (PseudoObjectExpr *POE = dyn_cast<PseudoObjectExpr>(BaseExpr.get()))
1604 VK = BaseExpr.get()->getValueKind();
1612 S.Context.getCanonicalType(BaseExpr.get()->getType()).getQualifiers();
1616 ExtVectorElementExpr(ret, VK, BaseExpr.get(), *Member, MemberLoc);
1623 BaseExpr = S.ImpCastExprToType(
1624 BaseExpr.get(), S.Context.getObjCSelRedefinitionType(), CK_BitCast);
1625 return LookupMemberExpr(S, R, BaseExpr, IsArrow, OpLoc, SS,
1643 << BaseType << int(IsArrow) << BaseExpr.get()->getSourceRange()
1648 BaseExpr, IsArrow, OpLoc, SS,
1656 BaseExpr, S.PDiag(diag::err_member_reference_needs_call),
1659 if (BaseExpr.isInvalid())
1661 BaseExpr = S.DefaultFunctionArrayConversion(BaseExpr.get());
1662 return LookupMemberExpr(S, R, BaseExpr, IsArrow, OpLoc, SS,
1667 << BaseType << BaseExpr.get()->getSourceRange() << MemberLoc;
1767 Sema::BuildFieldReferenceExpr(Expr *BaseExpr, bool IsArrow,
1778 if (BaseExpr->getObjectKind() == OK_Ordinary)
1779 VK = BaseExpr->getValueKind();
1792 QualType BaseType = BaseExpr->getType();
1826 ExprResult Base = PerformObjectMemberConversion(BaseExpr, SS.getScopeRep(),
1867 Expr *baseExpr = nullptr; // null signifies implicit access
1872 baseExpr = BuildCXXThisExpr(loc, ThisTy, /*IsImplicit=*/true);
1875 return BuildMemberReferenceExpr(baseExpr, ThisTy,