Lines Matching refs:SubExpr

202   const Expr *SubExpr = CE->getSubExpr();  in VisitCastExpr()  local
205 return this->delegate(SubExpr); in VisitCastExpr()
209 if (SubExpr->getType().isVolatileQualified()) in VisitCastExpr()
212 std::optional<PrimType> SubExprT = classify(SubExpr->getType()); in VisitCastExpr()
215 std::optional<unsigned> LocalIndex = allocateLocal(SubExpr); in VisitCastExpr()
222 if (!this->visit(SubExpr)) in VisitCastExpr()
236 assert(classifyPrim(SubExpr->getType()) == PT_MemberPtr); in VisitCastExpr()
237 const auto *FromMP = SubExpr->getType()->castAs<MemberPointerType>(); in VisitCastExpr()
244 if (!this->delegate(SubExpr)) in VisitCastExpr()
252 assert(classifyPrim(SubExpr) == PT_MemberPtr); in VisitCastExpr()
253 const auto *FromMP = SubExpr->getType()->castAs<MemberPointerType>(); in VisitCastExpr()
260 if (!this->delegate(SubExpr)) in VisitCastExpr()
267 if (!this->delegate(SubExpr)) in VisitCastExpr()
278 QualType CurType = SubExpr->getType(); in VisitCastExpr()
297 if (!this->delegate(SubExpr)) in VisitCastExpr()
300 collectBaseOffset(SubExpr->getType(), CE->getType()); in VisitCastExpr()
312 if (!SubExpr->getType()->isFloatingType() || in VisitCastExpr()
315 if (!this->visit(SubExpr)) in VisitCastExpr()
324 if (!this->visit(SubExpr)) in VisitCastExpr()
328 classifyPrim(SubExpr), TargetSemantics, getFPOptions(CE), CE); in VisitCastExpr()
332 if (!SubExpr->getType()->isRealFloatingType() || in VisitCastExpr()
335 if (const auto *FL = dyn_cast<FloatingLiteral>(SubExpr)) in VisitCastExpr()
337 if (!this->visit(SubExpr)) in VisitCastExpr()
343 if (!this->visit(SubExpr)) in VisitCastExpr()
358 if (!this->discard(SubExpr)) in VisitCastExpr()
364 Desc = P.createDescriptor(SubExpr, *T); in VisitCastExpr()
366 Desc = P.createDescriptor(SubExpr, PointeeType.getTypePtr(), in VisitCastExpr()
375 if (!this->visit(SubExpr)) in VisitCastExpr()
379 if (PrimType FromT = classifyPrim(SubExpr->getType()); FromT != PT_Ptr) { in VisitCastExpr()
396 if (!this->visit(SubExpr)) in VisitCastExpr()
402 QualType IntType = SubExpr->getType(); in VisitCastExpr()
404 if (!this->visit(SubExpr)) in VisitCastExpr()
412 Desc = P.createDescriptor(SubExpr, *T); in VisitCastExpr()
438 return this->delegate(SubExpr); in VisitCastExpr()
443 if (!this->discard(SubExpr)) in VisitCastExpr()
447 QualType SubExprTy = SubExpr->getType(); in VisitCastExpr()
461 return this->delegate(SubExpr); in VisitCastExpr()
463 if (!this->visit(SubExpr)) in VisitCastExpr()
472 if (!this->visit(SubExpr)) in VisitCastExpr()
479 std::optional<PrimType> FromT = classify(SubExpr->getType()); in VisitCastExpr()
483 if (const auto *IL = dyn_cast<IntegerLiteral>(SubExpr)) in VisitCastExpr()
485 if (!this->visit(SubExpr)) in VisitCastExpr()
492 std::optional<PrimType> FromT = classify(SubExpr->getType()); in VisitCastExpr()
498 if (const auto *IL = dyn_cast<IntegerLiteral>(SubExpr)) { in VisitCastExpr()
502 if (!this->emitConst(IL->getValue(), SubExpr)) in VisitCastExpr()
505 if (!this->visit(SubExpr)) in VisitCastExpr()
538 PrimType PtrT = classifyPrim(SubExpr->getType()); in VisitCastExpr()
540 if (!this->visit(SubExpr)) in VisitCastExpr()
547 if (!this->visit(SubExpr)) in VisitCastExpr()
549 return this->emitComplexBoolCast(SubExpr); in VisitCastExpr()
554 return this->emitComplexReal(SubExpr); in VisitCastExpr()
568 PrimType T = classifyPrim(SubExpr->getType()); in VisitCastExpr()
570 if (!this->visitArrayElemInit(0, SubExpr, T)) in VisitCastExpr()
573 if (!this->visitZeroInitializer(T, SubExpr->getType(), SubExpr)) in VisitCastExpr()
575 return this->emitInitElem(T, 1, SubExpr); in VisitCastExpr()
583 assert(SubExpr->getType()->isAnyComplexType()); in VisitCastExpr()
596 allocateLocalPrimitive(SubExpr, PT_Ptr, /*IsConst=*/true); in VisitCastExpr()
597 if (!this->visit(SubExpr)) in VisitCastExpr()
602 PrimType SourceElemT = classifyComplexElementType(SubExpr->getType()); in VisitCastExpr()
626 assert(classify(SubExpr->getType())); in VisitCastExpr()
638 PrimType ElemT = classifyPrim(SubExpr->getType()); in VisitCastExpr()
640 allocateLocalPrimitive(SubExpr, ElemT, /*IsConst=*/true); in VisitCastExpr()
643 if (!this->visit(SubExpr)) in VisitCastExpr()
645 if (classifyPrim(SubExpr) == PT_Ptr && !this->emitLoadPop(ElemT, CE)) in VisitCastExpr()
662 assert(SubExpr->getType()->isVectorType()); in VisitCastExpr()
666 if (!this->visit(SubExpr)) in VisitCastExpr()
681 assert(SubExpr->getType()->getAs<VectorType>()->getNumElements() > ToSize); in VisitCastExpr()
682 if (!this->visit(SubExpr)) in VisitCastExpr()
689 if (!this->visit(SubExpr)) in VisitCastExpr()
694 return this->emitCastIntegralFixedPoint(classifyPrim(SubExpr->getType()), in VisitCastExpr()
698 if (!this->visit(SubExpr)) in VisitCastExpr()
706 if (!this->visit(SubExpr)) in VisitCastExpr()
712 if (!this->visit(SubExpr)) in VisitCastExpr()
717 if (!this->visit(SubExpr)) in VisitCastExpr()
725 return discard(SubExpr); in VisitCastExpr()
769 const Expr *SubExpr = E->getSubExpr(); in VisitImaginaryLiteral() local
770 PrimType SubExprT = classifyPrim(SubExpr->getType()); in VisitImaginaryLiteral()
772 if (!this->visitZeroInitializer(SubExprT, SubExpr->getType(), SubExpr)) in VisitImaginaryLiteral()
774 if (!this->emitInitElem(SubExprT, 0, SubExpr)) in VisitImaginaryLiteral()
776 return this->visitArrayElemInit(1, SubExpr, SubExprT); in VisitImaginaryLiteral()
1628 const Expr *SubExpr = E->getSubExpr(); in VisitFixedPointUnaryOperator() local
1629 assert(SubExpr->getType()->isFixedPointType()); in VisitFixedPointUnaryOperator()
1633 return this->delegate(SubExpr); in VisitFixedPointUnaryOperator()
1635 if (!this->visit(SubExpr)) in VisitFixedPointUnaryOperator()
1719 for (const Expr *SubExpr : {LHS, RHS}) { in VisitArraySubscriptExpr()
1720 if (!this->visit(SubExpr)) { in VisitArraySubscriptExpr()
1727 if (SubExpr == Base && Base->getType()->isPointerType()) { in VisitArraySubscriptExpr()
2340 const Expr *SubExpr = E->getSubExpr(); in VisitArrayInitLoopExpr() local
2342 std::optional<PrimType> SubExprT = classify(SubExpr); in VisitArrayInitLoopExpr()
2351 if (!this->visitArrayElemInit(I, SubExpr, SubExprT)) in VisitArrayInitLoopExpr()
2801 const Expr *SubExpr = E->getSubExpr(); in VisitExprWithCleanups() local
2803 return this->delegate(SubExpr) && ES.destroyLocals(E); in VisitExprWithCleanups()
2809 const Expr *SubExpr = E->getSubExpr(); in VisitMaterializeTemporaryExpr() local
2813 return this->delegate(SubExpr); in VisitMaterializeTemporaryExpr()
2818 return this->discard(SubExpr); in VisitMaterializeTemporaryExpr()
2822 std::optional<PrimType> SubExprT = classify(SubExpr); in VisitMaterializeTemporaryExpr()
2835 if (!this->visit(SubExpr)) in VisitMaterializeTemporaryExpr()
2847 if (!this->checkLiteralType(SubExpr)) in VisitMaterializeTemporaryExpr()
2852 if (!this->visitInitializer(SubExpr)) in VisitMaterializeTemporaryExpr()
2861 bool IsConst = SubExpr->getType().isConstQualified(); in VisitMaterializeTemporaryExpr()
2864 if (!this->visit(SubExpr)) in VisitMaterializeTemporaryExpr()
2871 if (!this->checkLiteralType(SubExpr)) in VisitMaterializeTemporaryExpr()
2880 return this->visitInitializer(SubExpr) && this->emitFinishInit(E); in VisitMaterializeTemporaryExpr()
2889 const Expr *SubExpr = E->getSubExpr(); in VisitCXXBindTemporaryExpr() local
2892 return this->delegate(SubExpr); in VisitCXXBindTemporaryExpr()
2897 if (!this->visit(SubExpr)) in VisitCXXBindTemporaryExpr()
3044 const Expr *SubExpr = E->getSubExpr(); in VisitCXXReinterpretCastExpr() local
3046 std::optional<PrimType> FromT = classify(SubExpr); in VisitCXXReinterpretCastExpr()
3055 if (SubExpr->getType()->isPointerOrReferenceType()) in VisitCXXReinterpretCastExpr()
3056 PointeeFromT = classify(SubExpr->getType()->getPointeeType()); in VisitCXXReinterpretCastExpr()
3058 PointeeFromT = classify(SubExpr->getType()); in VisitCXXReinterpretCastExpr()
3071 Fatal = SubExpr->getType().getTypePtr() != E->getType().getTypePtr(); in VisitCXXReinterpretCastExpr()
3078 return this->delegate(SubExpr); in VisitCXXReinterpretCastExpr()
4016 const Expr *SubExpr = E->getSubExpr(); in VisitObjCBoxedExpr() local
4018 return this->discard(SubExpr) && this->emitInvalid(E); in VisitObjCBoxedExpr()
4030 const Expr *SubExpr = E->getSubExpr(); in VisitCXXStdInitializerListExpr() local
4032 Ctx.getASTContext().getAsConstantArrayType(SubExpr->getType()); in VisitCXXStdInitializerListExpr()
4035 assert(SubExpr->isGLValue()); in VisitCXXStdInitializerListExpr()
4037 if (!this->visit(SubExpr)) in VisitCXXStdInitializerListExpr()
6093 const Expr *SubExpr = E->getSubExpr(); in VisitUnaryOperator() local
6094 if (SubExpr->getType()->isAnyComplexType()) in VisitUnaryOperator()
6096 if (SubExpr->getType()->isVectorType()) in VisitUnaryOperator()
6098 if (SubExpr->getType()->isFixedPointType()) in VisitUnaryOperator()
6100 std::optional<PrimType> T = classify(SubExpr->getType()); in VisitUnaryOperator()
6109 if (!this->visit(SubExpr)) in VisitUnaryOperator()
6133 if (!this->visit(SubExpr)) in VisitUnaryOperator()
6157 if (!this->visit(SubExpr)) in VisitUnaryOperator()
6202 if (!this->visit(SubExpr)) in VisitUnaryOperator()
6246 return this->discard(SubExpr); in VisitUnaryOperator()
6248 if (!this->visitBool(SubExpr)) in VisitUnaryOperator()
6261 if (!this->visit(SubExpr)) in VisitUnaryOperator()
6268 if (!this->visit(SubExpr)) // noop in VisitUnaryOperator()
6275 return this->emitGetMemberPtr(cast<DeclRefExpr>(SubExpr)->getDecl(), E); in VisitUnaryOperator()
6278 return this->delegate(SubExpr); in VisitUnaryOperator()
6281 return this->discard(SubExpr); in VisitUnaryOperator()
6283 if (!this->visit(SubExpr)) in VisitUnaryOperator()
6286 if (classifyPrim(SubExpr) == PT_Ptr) in VisitUnaryOperator()
6294 if (!this->visit(SubExpr)) in VisitUnaryOperator()
6299 return this->delegate(SubExpr); in VisitUnaryOperator()
6302 if (!this->discard(SubExpr)) in VisitUnaryOperator()
6304 return this->visitZeroInitializer(*T, SubExpr->getType(), SubExpr); in VisitUnaryOperator()
6307 return this->delegate(SubExpr); in VisitUnaryOperator()
6317 const Expr *SubExpr = E->getSubExpr(); in VisitComplexUnaryOperator() local
6318 assert(SubExpr->getType()->isAnyComplexType()); in VisitComplexUnaryOperator()
6321 return this->discard(SubExpr); in VisitComplexUnaryOperator()
6326 std::optional<unsigned> LocalIndex = allocateLocal(SubExpr); in VisitComplexUnaryOperator()
6339 this->allocateLocalPrimitive(SubExpr, PT_Ptr, /*IsConst=*/true); in VisitComplexUnaryOperator()
6340 if (!this->visit(SubExpr)) in VisitComplexUnaryOperator()
6345 PrimType ElemT = classifyComplexElementType(SubExpr->getType()); in VisitComplexUnaryOperator()
6371 return this->delegate(SubExpr); in VisitComplexUnaryOperator()
6374 if (!this->visit(SubExpr)) in VisitComplexUnaryOperator()
6376 if (!this->emitComplexBoolCast(SubExpr)) in VisitComplexUnaryOperator()
6385 return this->emitComplexReal(SubExpr); in VisitComplexUnaryOperator()
6388 if (!this->visit(SubExpr)) in VisitComplexUnaryOperator()
6391 if (SubExpr->isLValue()) { in VisitComplexUnaryOperator()
6402 if (!this->visit(SubExpr)) in VisitComplexUnaryOperator()
6414 return this->delegate(SubExpr); in VisitComplexUnaryOperator()
6425 const Expr *SubExpr = E->getSubExpr(); in VisitVectorUnaryOperator() local
6426 assert(SubExpr->getType()->isVectorType()); in VisitVectorUnaryOperator()
6429 return this->discard(SubExpr); in VisitVectorUnaryOperator()
6433 return this->delegate(SubExpr); in VisitVectorUnaryOperator()
6441 return this->delegate(SubExpr); in VisitVectorUnaryOperator()
6444 std::optional<unsigned> LocalIndex = allocateLocal(SubExpr); in VisitVectorUnaryOperator()
6453 this->allocateLocalPrimitive(SubExpr, PT_Ptr, /*IsConst=*/true); in VisitVectorUnaryOperator()
6454 if (!this->visit(SubExpr)) in VisitVectorUnaryOperator()
6459 const auto *VecTy = SubExpr->getType()->getAs<VectorType>(); in VisitVectorUnaryOperator()
6460 PrimType ElemT = classifyVectorElementType(SubExpr->getType()); in VisitVectorUnaryOperator()
6758 bool Compiler<Emitter>::emitComplexReal(const Expr *SubExpr) { in emitComplexReal() argument
6759 assert(SubExpr->getType()->isAnyComplexType()); in emitComplexReal()
6762 return this->discard(SubExpr); in emitComplexReal()
6764 if (!this->visit(SubExpr)) in emitComplexReal()
6766 if (SubExpr->isLValue()) { in emitComplexReal()
6767 if (!this->emitConstUint8(0, SubExpr)) in emitComplexReal()
6769 return this->emitArrayElemPtrPopUint8(SubExpr); in emitComplexReal()
6773 return this->emitArrayElemPop(classifyComplexElementType(SubExpr->getType()), in emitComplexReal()
6774 0, SubExpr); in emitComplexReal()
7036 const Expr *SubExpr = E->getSubExpr(); in emitBuiltinBitCast() local
7037 QualType FromType = SubExpr->getType(); in emitBuiltinBitCast()
7057 if (SubExpr->isGLValue() || FromType->isVectorType()) { in emitBuiltinBitCast()
7058 if (!this->visit(SubExpr)) in emitBuiltinBitCast()
7060 } else if (std::optional<PrimType> FromT = classify(SubExpr)) { in emitBuiltinBitCast()
7062 allocateLocalPrimitive(SubExpr, *FromT, /*IsConst=*/true); in emitBuiltinBitCast()
7063 if (!this->visit(SubExpr)) in emitBuiltinBitCast()