clang API Documentation
EvalStatus is a struct with detailed info about an evaluation in progress. More...
#include <Expr.h>
Public Member Functions | |
EvalStatus () | |
bool | hasSideEffects () const |
Public Attributes | |
bool | HasSideEffects |
SmallVectorImpl < PartialDiagnosticAt > * | Diag |
EvalStatus is a struct with detailed info about an evaluation in progress.
clang::Expr::EvalStatus::EvalStatus | ( | ) | [inline] |
bool clang::Expr::EvalStatus::hasSideEffects | ( | ) | const [inline] |
Definition at line 547 of file Expr.h.
References HasSideEffects.
Referenced by clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), and clang::CodeGen::CodeGenModule::GetAddrOfGlobalTemporary().
SmallVectorImpl<PartialDiagnosticAt>* clang::Expr::EvalStatus::Diag |
Diag - If this is non-null, it will be filled in with a stack of notes indicating why evaluation failed (or why it failed to produce a constant expression). If the expression is unfoldable, the notes will indicate why it's not foldable. If the expression is foldable, but not a constant expression, the notes will describes why it isn't a constant expression. If the expression *is* a constant expression, no notes will be produced.
Definition at line 541 of file Expr.h.
Referenced by clang::Sema::CheckConvertedConstantExpression(), clang::Expr::EvaluateAsInitializer(), clang::Expr::isCXX11ConstantExpr(), isNullPointerValueTemplateArgument(), clang::Expr::isPotentialConstantExpr(), clang::Expr::isPotentialConstantExprUnevaluated(), and clang::Sema::VerifyIntegerConstantExpression().
HasSideEffects - Whether the evaluated expression has side effects. For example, (f() && 0) can be folded, but it still has side effects.
Definition at line 532 of file Expr.h.
Referenced by CheckEvalInICE(), clang::CodeGen::CodeGenModule::EmitConstantExpr(), clang::Expr::EvaluateAsInitializer(), EvaluateBuiltinConstantP(), hasSideEffects(), clang::Expr::isConstantInitializer(), isNullPointerValueTemplateArgument(), clang::CodeGen::CodeGenFunction::tryEmitAsConstant(), and clang::Sema::VerifyIntegerConstantExpression().