diff --git a/test/unit/from_current_z.cpp b/test/unit/from_current_z.cpp index 52bacb34..95462ac0 100644 --- a/test/unit/from_current_z.cpp +++ b/test/unit/from_current_z.cpp @@ -16,16 +16,22 @@ using namespace std::literals; // NOTE: returning something and then return stacktrace_from_current_3(line_numbers) * 2; later helps prevent the call from // being optimized to a jmp CPPTRACE_FORCE_NO_INLINE int stacktrace_from_current_z_3(std::vector& line_numbers) { + // just here to differentiate from the non-z version to prevent ICF if LTO is being used + [[maybe_unused]] volatile int x = 1; line_numbers.insert(line_numbers.begin(), __LINE__ + 1); throw std::runtime_error("foobar"); } CPPTRACE_FORCE_NO_INLINE int stacktrace_from_current_z_2(std::vector& line_numbers) { + // just here to differentiate from the non-z version to prevent ICF if LTO is being used + [[maybe_unused]] volatile int x = 1; line_numbers.insert(line_numbers.begin(), __LINE__ + 1); return stacktrace_from_current_z_3(line_numbers) * 2; } CPPTRACE_FORCE_NO_INLINE int stacktrace_from_current_z_1(std::vector& line_numbers) { + // just here to differentiate from the non-z version to prevent ICF if LTO is being used + [[maybe_unused]] volatile int x = 1; line_numbers.insert(line_numbers.begin(), __LINE__ + 1); return stacktrace_from_current_z_2(line_numbers) * 2; }