From af088d0999d95ef27e34fe4fc8fd85bf8049ba45 Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Wed, 22 Nov 2023 23:15:30 -0600 Subject: [PATCH] Bump to cpptrace 0.3.0 --- CMakeLists.txt | 5 +++-- src/assert.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09fe6e59..b3cfca10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,7 @@ if(ASSERT_STATIC) add_library(assert STATIC src/assert.cpp include/assert.hpp) else() add_library(assert SHARED src/assert.cpp include/assert.hpp) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif() target_include_directories( @@ -76,10 +77,10 @@ else() FetchContent_Declare( cpptrace GIT_REPOSITORY https://github.com/jeremy-rifkin/cpptrace.git - GIT_TAG v0.2.1 + GIT_TAG 4ec11d00de87fa8354170c8956e69b6650774146 ) FetchContent_MakeAvailable(cpptrace) - set(ASSERT_CPPTRACE_TARGET_NAME cpptrace) + set(ASSERT_CPPTRACE_TARGET_NAME cpptrace::cpptrace) endif() target_link_libraries(assert PRIVATE ${ASSERT_CPPTRACE_TARGET_NAME}) diff --git a/src/assert.cpp b/src/assert.cpp index f3560f43..8d4bd245 100644 --- a/src/assert.cpp +++ b/src/assert.cpp @@ -1648,15 +1648,15 @@ namespace libassert::detail { // NOLINTNEXTLINE(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) trace.begin() + end + 1, [](const cpptrace::stacktrace_frame& a, const cpptrace::stacktrace_frame& b) { - return a.line < b.line; + return a.line.value_or(0) < b.line.value_or(0); } )->line; - const size_t max_line_number_width = n_digits(max_line_number); + const size_t max_line_number_width = n_digits(max_line_number.value_or(0)); const size_t max_frame_width = n_digits(end - start); // do the actual trace for(size_t i = start; i <= end; i++) { - const auto& [address, line, col, source_path, signature] = trace.frames[i]; - const std::string line_number = line == 0 ? "?" : std::to_string(line); + const auto& [address, line, col, source_path, signature, is_inline] = trace.frames[i]; + const std::string line_number = line.has_value() ? std::to_string(line.value()) : "?"; // look for repeats, i.e. recursion we can fold size_t recursion_folded = 0; if(end - i >= 4) {