Lines Matching defs:Eval

2088   if (auto *Eval = Init.dyn_cast<EvaluatedStmt *>()) {
2089 Eval->~EvaluatedStmt();
2090 getASTContext().Deallocate(Eval);
2127 auto *Eval = Init.dyn_cast<EvaluatedStmt *>();
2128 if (!Eval) {
2133 Eval = new (getASTContext()) EvaluatedStmt;
2134 Eval->Value = Init.get<Stmt *>();
2135 Init = Eval;
2137 return Eval;
2154 EvaluatedStmt *Eval = ensureEvaluatedStmt();
2159 if (Eval->WasEvaluated)
2160 return Eval->Evaluated.isUninit() ? nullptr : &Eval->Evaluated;
2162 const auto *Init = cast<Expr>(Eval->Value);
2165 if (Eval->IsEvaluating) {
2167 Eval->CheckedICE = true;
2168 Eval->IsICE = false;
2172 Eval->IsEvaluating = true;
2174 bool Result = Init->EvaluateAsInitializer(Eval->Evaluated, getASTContext(),
2181 Eval->Evaluated = APValue();
2182 else if (Eval->Evaluated.needsCleanup())
2183 getASTContext().AddDeallocation(DestroyAPValue, &Eval->Evaluated);
2185 Eval->IsEvaluating = false;
2186 Eval->WasEvaluated = true;
2190 if (getASTContext().getLangOpts().CPlusPlus11 && !Eval->CheckedICE) {
2191 Eval->CheckedICE = true;
2192 Eval->IsICE = Result && Notes.empty();
2195 return Result ? &Eval->Evaluated : nullptr;
2199 if (EvaluatedStmt *Eval = Init.dyn_cast<EvaluatedStmt *>())
2200 if (Eval->WasEvaluated)
2201 return &Eval->Evaluated;
2207 if (EvaluatedStmt *Eval = Init.dyn_cast<EvaluatedStmt *>())
2208 return Eval->CheckedICE;
2224 EvaluatedStmt *Eval = ensureEvaluatedStmt();
2225 if (Eval->CheckedICE)
2228 return Eval->IsICE;
2230 const auto *Init = cast<Expr>(Eval->Value);
2238 return Eval->IsICE;
2245 if (Eval->CheckingICE)
2247 Eval->CheckingICE = true;
2249 Eval->IsICE = Init->isIntegerConstantExpr(getASTContext());
2250 Eval->CheckingICE = false;
2251 Eval->CheckedICE = true;
2252 return Eval->IsICE;