#include "EvaluationResult.h"
#include "InterpState.h"
#include "Record.h"
#include "clang/AST/ExprCXX.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SetVector.h"
#include <iterator>
namespace clang {
namespace interp {
APValue EvaluationResult::toAPValue() const { … }
std::optional<APValue> EvaluationResult::toRValue() const { … }
static void DiagnoseUninitializedSubobject(InterpState &S, SourceLocation Loc,
const FieldDecl *SubObjDecl) { … }
static bool CheckFieldsInitialized(InterpState &S, SourceLocation Loc,
const Pointer &BasePtr, const Record *R);
static bool CheckArrayInitialized(InterpState &S, SourceLocation Loc,
const Pointer &BasePtr,
const ConstantArrayType *CAT) { … }
static bool CheckFieldsInitialized(InterpState &S, SourceLocation Loc,
const Pointer &BasePtr, const Record *R) { … }
bool EvaluationResult::checkFullyInitialized(InterpState &S,
const Pointer &Ptr) const { … }
static void collectBlocks(const Pointer &Ptr,
llvm::SetVector<const Block *> &Blocks) { … }
bool EvaluationResult::checkReturnValue(InterpState &S, const Context &Ctx,
const Pointer &Ptr,
const SourceInfo &Info) { … }
}
}