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

References

tools/clang/lib/AST/ExprConstant.cpp
13276   QualType T = E->getType();
13277   if (E->isGLValue() || T->isFunctionType()) {
13279     if (!EvaluateLValue(E, LV, Info))
13283     if (!EvaluateVector(E, Result, Info))
13286     if (!IntExprEvaluator(Info, Result).Visit(E))
13290     if (!EvaluatePointer(E, LV, Info))
13295     if (!EvaluateFloat(E, F, Info))
13300     if (!EvaluateComplex(E, C, Info))
13304     if (!FixedPointExprEvaluator(Info, Result).Visit(E)) return false;
13307     if (!EvaluateMemberPointer(E, P, Info))
13314         Info.CurrentCall->createTemporary(E, T, false, LV);
13315     if (!EvaluateArray(E, LV, Value, Info))
13320     APValue &Value = Info.CurrentCall->createTemporary(E, T, false, LV);
13321     if (!EvaluateRecord(E, LV, Value, Info))
13326       Info.CCEDiag(E, diag::note_constexpr_nonliteral)
13327         << E->getType();
13328     if (!EvaluateVoid(E, Info))
13334       APValue &Value = Info.CurrentCall->createTemporary(E, Unqual, false, LV);
13335       if (!EvaluateAtomic(E, &LV, Value, Info))
13338       if (!EvaluateAtomic(E, nullptr, Result, Info))
13342     Info.FFDiag(E, diag::note_constexpr_nonliteral) << E->getType();
13342     Info.FFDiag(E, diag::note_constexpr_nonliteral) << E->getType();
13345     Info.FFDiag(E, diag::note_invalid_subexpr_in_const_expr);