From 776e01ed9bc6864aa6dbf35ea5849a933fbc5c11 Mon Sep 17 00:00:00 2001 From: Joel Rosdahl Date: Tue, 5 Aug 2025 10:48:18 +0200 Subject: [PATCH] fix: Properly make unique temporary name in TRY_ASSIGN --- src/ccache/util/expected.hpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ccache/util/expected.hpp b/src/ccache/util/expected.hpp index 9f79ff95..212b14c3 100644 --- a/src/ccache/util/expected.hpp +++ b/src/ccache/util/expected.hpp @@ -19,6 +19,7 @@ #pragma once #include +#include #include @@ -59,11 +60,11 @@ void throw_on_error(const T& value, std::string_view prefix); } while (false) #define TRY_ASSIGN(var_, expression_) \ - auto result_##__LINE__##_ = (expression_); \ - if (!result_##__LINE__##_) { \ - return tl::unexpected(std::move(result_##__LINE__##_.error())); \ + auto UNIQUE_VARNAME(_result_) = (expression_); \ + if (!UNIQUE_VARNAME(_result_)) { \ + return tl::unexpected(std::move(UNIQUE_VARNAME(_result_).error())); \ } \ - var_ = std::move(*result_##__LINE__##_) + var_ = std::move(*UNIQUE_VARNAME(_result_)) // --- Inline implementations --- -- 2.47.2