//===------ EvaluationResult.h - Result class for the VM -------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_AST_INTERP_EVALUATION_RESULT_H #define LLVM_CLANG_AST_INTERP_EVALUATION_RESULT_H #include "FunctionPointer.h" #include "Pointer.h" #include "clang/AST/APValue.h" #include "clang/AST/Decl.h" #include "clang/AST/Expr.h" #include <optional> #include <variant> namespace clang { namespace interp { class EvalEmitter; class Context; /// Defines the result of an evaluation. /// /// The result might be in different forms--one of the pointer types, /// an APValue, or nothing. /// /// We use this class to inspect and diagnose the result, as well as /// convert it to the requested form. class EvaluationResult final { … }; } // namespace interp } // namespace clang #endif