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

References

tools/clang/lib/AST/ExprConstant.cpp
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);