//===- AllocActionTestUtils.h ---------------------------------------------===// // // 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 ORC_RT_UNITTEST_ALLOCACTIONTESTUTILS_H #define ORC_RT_UNITTEST_ALLOCACTIONTESTUTILS_H #include "SimplePackedSerializationTestUtils.h" #include "orc-rt/AllocAction.h" #include template struct MakeAllocAction { template static std::optional from(orc_rt::AllocActionFn Fn, ArgTs &&...Args) { using SPS = orc_rt::SPSArgList; auto B = orc_rt::WrapperFunctionBuffer::allocate(SPS::size(Args...)); orc_rt::SPSOutputBuffer OB(B.data(), B.size()); if (!SPS::serialize(OB, Args...)) return std::nullopt; return orc_rt::AllocAction(Fn, std::move(B)); } }; #endif // ORC_RT_UNITTEST_ALLOCACTIONTESTUTILS_H