From fdb626a047a7ee4b6147af81372c1f34e45b4275 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Wed, 10 Sep 2025 20:27:23 -0700 Subject: [PATCH] [Support] Consolidate runOnNewStack (NFC) This patch consolidates two implementations of runOnNewStack with "if constexpr". --- llvm/include/llvm/Support/ProgramStack.h | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/llvm/include/llvm/Support/ProgramStack.h b/llvm/include/llvm/Support/ProgramStack.h index 0dd8235b90c06..13729a2990588 100644 --- a/llvm/include/llvm/Support/ProgramStack.h +++ b/llvm/include/llvm/Support/ProgramStack.h @@ -46,17 +46,15 @@ LLVM_ABI unsigned getDefaultStackSize(); LLVM_ABI void runOnNewStack(unsigned StackSize, function_ref Fn); template -std::enable_if_t, R> -runOnNewStack(unsigned StackSize, function_ref Fn, Ts &&...Args) { - std::optional Ret; - runOnNewStack(StackSize, [&]() { Ret = Fn(std::forward(Args)...); }); - return std::move(*Ret); -} - -template -void runOnNewStack(unsigned StackSize, function_ref Fn, +auto runOnNewStack(unsigned StackSize, function_ref Fn, Ts &&...Args) { - runOnNewStack(StackSize, [&]() { Fn(std::forward(Args)...); }); + if constexpr (std::is_same_v) { + runOnNewStack(StackSize, [&]() { Fn(std::forward(Args)...); }); + } else { + std::optional Ret; + runOnNewStack(StackSize, [&]() { Ret = Fn(std::forward(Args)...); }); + return std::move(*Ret); + } } } // namespace llvm