This is part of an effort to migrate from llvm::Optional to
std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
#include <cassert>
#include <cstddef>
#include <cstdint>
+#include <optional>
#include <vector>
namespace llvm {
/// have attributes that describe properties of gc.statepoint call they will be
/// eventually be wrapped in. This struct is used represent such directives.
struct StatepointDirectives {
- Optional<uint32_t> NumPatchBytes;
- Optional<uint64_t> StatepointID;
+ std::optional<uint32_t> NumPatchBytes;
+ std::optional<uint64_t> StatepointID;
static const uint64_t DefaultStatepointID = 0xABCDEF00;
static const uint64_t DeoptBundleStatepointID = 0xABCDEF0F;