reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
3454 (E->getLHS() == E->getIdx()) ? EmitScalarExpr(E->getIdx()) : nullptr; 3454 (E->getLHS() == E->getIdx()) ? EmitScalarExpr(E->getIdx()) : nullptr; 3454 (E->getLHS() == E->getIdx()) ? EmitScalarExpr(E->getIdx()) : nullptr; 3458 if (E->getLHS() != E->getIdx()) { 3458 if (E->getLHS() != E->getIdx()) { 3459 assert(E->getRHS() == E->getIdx() && "index was neither LHS nor RHS"); 3459 assert(E->getRHS() == E->getIdx() && "index was neither LHS nor RHS"); 3460 Idx = EmitScalarExpr(E->getIdx()); 3463 QualType IdxTy = E->getIdx()->getType(); 3468 EmitBoundsCheck(E, E->getBase(), Idx, IdxTy, Accessed); 3468 EmitBoundsCheck(E, E->getBase(), Idx, IdxTy, Accessed); 3480 if (E->getBase()->getType()->isVectorType() && 3481 !isa<ExtVectorElementExpr>(E->getBase())) { 3483 LValue LHS = EmitLValue(E->getBase()); 3486 return LValue::MakeVectorElt(LHS.getAddress(), Idx, E->getBase()->getType(), 3493 if (isa<ExtVectorElementExpr>(E->getBase())) { 3494 LValue LV = EmitLValue(E->getBase()); 3500 SignedIndices, E->getExprLoc()); 3509 getContext().getAsVariableArrayType(E->getType())) { 3513 Addr = EmitPointerWithAlignment(E->getBase(), &EltBaseInfo, &EltTBAAInfo); 3531 SignedIndices, E->getExprLoc()); 3533 } else if (const ObjCObjectType *OIT = E->getType()->getAs<ObjCObjectType>()){ 3537 Addr = EmitPointerWithAlignment(E->getBase(), &EltBaseInfo, &EltTBAAInfo); 3558 SignedIndices, E->getExprLoc()); 3563 } else if (const Expr *Array = isSimpleArrayDecayOperand(E->getBase())) { 3583 E->getType(), !getLangOpts().isSignedOverflowDefined(), SignedIndices, 3584 E->getExprLoc(), &arrayType); 3586 EltTBAAInfo = CGM.getTBAAInfoForSubobject(ArrayLV, E->getType()); 3589 Addr = EmitPointerWithAlignment(E->getBase(), &EltBaseInfo, &EltTBAAInfo); 3591 QualType ptrType = E->getBase()->getType(); 3592 Addr = emitArraySubscriptGEP(*this, Addr, Idx, E->getType(), 3594 SignedIndices, E->getExprLoc(), &ptrType); 3597 LValue LV = MakeAddrLValue(Addr, E->getType(), EltBaseInfo, EltTBAAInfo); 3601 LV.setNonGC(!E->isOBJCGCCandidate(getContext())); 3602 setObjCGCLValueClass(getContext(), E, LV);