= llvm::PointerUnion<const Decl *, const Expr *>;
46std::variant<std::monostate, Pointer, FunctionPointer, APValue>
Value;
56 voidsetSource(
DeclTy D) { Source =
D; }
64 voidsetPointer(
constPointer
P) {
69 voidsetFunctionPointer(
constFunctionPointer &
P) {
99std::optional<APValue>
toRValue()
const;
109 if(
const auto*
D=
110dyn_cast_if_present<ValueDecl>(Source.dyn_cast<
const Decl*>()))
111 return D->getType();
112 else if(
const auto*
E= Source.dyn_cast<
const Expr*>())
113 return E->getType();
APValue - This class implements a discriminated union of [uninitialized] [APSInt] [APFloat],...
Decl - This represents one declaration (or definition), e.g.
This represents one expression.
A (possibly-)qualified type.
Holds all information required to evaluate constexpr code in a module.
An emitter which evaluates opcodes as they are emitted.
Defines the result of an evaluation.
std::optional< APValue > toRValue() const
If the result is an LValue, convert that to an RValue and return it.
APValue toAPValue() const
Returns an APValue for the evaluation result.
QualType getSourceType() const
bool checkReturnValue(InterpState &S, const Context &Ctx, const Pointer &Ptr, const SourceInfo &Info)
Check that none of the blocks the given pointer (transitively) points to are dynamically allocated.
llvm::PointerUnion< const Decl *, const Expr * > DeclTy
bool checkFullyInitialized(InterpState &S, const Pointer &Ptr) const
Check that all subobjects of the given pointer have been initialized.
EvaluationResult(const Context *Ctx)
void dump() const
Dump to stderr.
A pointer to a memory block, live or dead.
Describes the statement/declaration an opcode was generated from.
llvm::PointerUnion< const Decl *, const Expr * > DeclTy
The JSON file list parser is used to communicate input to InstallAPI.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4