reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
13822 assert(!E->isValueDependent() && "Should not see value dependent exprs!"); 13823 if (!E->getType()->isIntegralOrEnumerationType()) 13824 return ICEDiag(IK_NotICE, E->getBeginLoc()); 13826 switch (E->getStmtClass()) { 13908 return ICEDiag(IK_NotICE, E->getBeginLoc()); 13915 if (E->isRValue()) 13916 if (cast<InitListExpr>(E)->getNumInits() == 1) 13917 return CheckICE(cast<InitListExpr>(E)->getInit(0), Ctx); 13918 return ICEDiag(IK_NotICE, E->getBeginLoc()); 13928 CheckICE(cast<SubstNonTypeTemplateParmExpr>(E)->getReplacement(), Ctx); 13931 return CheckICE(cast<ConstantExpr>(E)->getSubExpr(), Ctx); 13934 return CheckICE(cast<ParenExpr>(E)->getSubExpr(), Ctx); 13936 return CheckICE(cast<GenericSelectionExpr>(E)->getResultExpr(), Ctx); 13954 const CallExpr *CE = cast<CallExpr>(E); 13956 return CheckEvalInICE(E, Ctx); 13957 return ICEDiag(IK_NotICE, E->getBeginLoc()); 13960 return CheckICE(cast<CXXRewrittenBinaryOperator>(E)->getSemanticForm(), 13963 if (isa<EnumConstantDecl>(cast<DeclRefExpr>(E)->getDecl())) 13965 const ValueDecl *D = cast<DeclRefExpr>(E)->getDecl(); 13972 return ICEDiag(IK_NotICE, cast<DeclRefExpr>(E)->getLocation()); 13979 return ICEDiag(IK_NotICE, cast<DeclRefExpr>(E)->getLocation()); 13987 return ICEDiag(IK_NotICE, cast<DeclRefExpr>(E)->getLocation()); 13990 return ICEDiag(IK_NotICE, E->getBeginLoc()); 13993 const UnaryOperator *Exp = cast<UnaryOperator>(E); 14005 return ICEDiag(IK_NotICE, E->getBeginLoc()); 14024 return CheckEvalInICE(E, Ctx); 14027 const UnaryExprOrTypeTraitExpr *Exp = cast<UnaryExprOrTypeTraitExpr>(E); 14030 return ICEDiag(IK_NotICE, E->getBeginLoc()); 14034 const BinaryOperator *Exp = cast<BinaryOperator>(E); 14052 return ICEDiag(IK_NotICE, E->getBeginLoc()); 14081 return ICEDiag(IK_ICEIfUnevaluated, E->getBeginLoc()); 14085 return ICEDiag(IK_ICEIfUnevaluated, E->getBeginLoc()); 14094 return ICEDiag(IK_ICEIfUnevaluated, E->getBeginLoc()); 14097 return ICEDiag(IK_NotICE, E->getBeginLoc()); 14128 const Expr *SubExpr = cast<CastExpr>(E)->getSubExpr(); 14129 if (isa<ExplicitCastExpr>(E)) { 14132 unsigned DestWidth = Ctx.getIntWidth(E->getType()); 14133 bool DestSigned = E->getType()->isSignedIntegerOrEnumerationType(); 14142 return ICEDiag(IK_NotICE, E->getBeginLoc()); 14146 switch (cast<CastExpr>(E)->getCastKind()) { 14155 return ICEDiag(IK_NotICE, E->getBeginLoc()); 14159 const BinaryConditionalOperator *Exp = cast<BinaryConditionalOperator>(E); 14170 const ConditionalOperator *Exp = cast<ConditionalOperator>(E); 14178 return CheckEvalInICE(E, Ctx); 14202 return CheckICE(cast<CXXDefaultArgExpr>(E)->getExpr(), Ctx); 14204 return CheckICE(cast<CXXDefaultInitExpr>(E)->getExpr(), Ctx); 14206 return CheckICE(cast<ChooseExpr>(E)->getChosenSubExpr(), Ctx); 14209 if (!checkBitCastConstexprEligibility(nullptr, Ctx, cast<CastExpr>(E))) 14210 return ICEDiag(IK_NotICE, E->getBeginLoc()); 14211 return CheckICE(cast<CastExpr>(E)->getSubExpr(), Ctx);