9#ifndef LLVM_CLANG_AST_INTERP_EVALUATION_RESULT_H
10#define LLVM_CLANG_AST_INTERP_EVALUATION_RESULT_H
44 ResultKind Kind =
Empty;
65 QualType getStorageType()
const;
99 if (
const auto *D = Source.asValueDecl())
101 if (
const auto *E = Source.asExpr())
APValue - This class implements a discriminated union of [uninitialized] [APSInt] [APFloat],...
A (possibly-)qualified type.
Holds all information required to evaluate constexpr code in a module.
An emitter which evaluates opcodes as they are emitted.
QualType getSourceType() const
static bool checkMemberPointer(InterpState &S, const MemberPointer &MemberPtr, SourceInfo Info, ConstantExprKind ConstexprKind)
Check if the given member pointer can be returned from an evaluation.
bool checkFunctionPointer(InterpState &S, const Pointer &Ptr, SourceInfo Info, ConstantExprKind ConstexprKind) const
Check if the given function pointer can be returned from an evaluation.
EvaluationResult(const Context &Ctx)
bool checkLValue(InterpState &S, const Pointer &Ptr, SourceInfo Info, ConstantExprKind ConstexprKind) const
Check the given pointer as an lvalue, i.e.
bool checkDynamicAllocations(InterpState &S, const Pointer &Ptr, SourceInfo Info) const
Check that none of the blocks the given pointer (transitively) points to are dynamically allocated.
bool checkFullyInitialized(InterpState &S, const Pointer &Ptr) const
Check that all subobjects of the given pointer have been initialized.
void dump() const
Dump to stderr.
bool checkLValueFields(InterpState &S, const Pointer &Ptr, SourceInfo Info, ConstantExprKind ConstexprKind) const
Check all fields of the given pointer.
A pointer to a memory block, live or dead.
Describes the statement/declaration an opcode was generated from.
Top level wrappers for InstallAPI frontend operations.
Expr::ConstantExprKind ConstantExprKind