git: 1aea303cc2e8 - stable/14 - Merge commit 1f332ae4f1b3 from llvm-project (by Alexander Kornienko):

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sun, 20 Sep 2026 07:03:44 UTC
The branch stable/14 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=1aea303cc2e8f65acba3928b7fcc2196ca82d4c0

commit 1aea303cc2e8f65acba3928b7fcc2196ca82d4c0
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2026-09-17 19:32:45 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2026-09-20 07:03:05 +0000

    Merge commit 1f332ae4f1b3 from llvm-project (by Alexander Kornienko):
    
      Fix -Wformat diagnostic after #190965 (#193704)
    
      Fixes libunwind compiler diagnostic when building with clang after
      034d4dcad6396d1241e8262e69871b8d61da7e4f:
      ```
      In file included from libunwind/src/libunwind.cpp:31:
      In file included from libunwind/src/UnwindCursor.hpp:52:
      libunwind/src/CompactUnwinder.hpp:339:46: error: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]
        338 |                            "function starting at 0x%llX",
            |                                                    ~~~~
            |                                                    %lX
        339 |                             compactEncoding, functionStart);
            |                                              ^~~~~~~~~~~~~
      libunwind/src/config.h:215:63: note: expanded from macro '_LIBUNWIND_DEBUG_LOG'
        215 |   #define _LIBUNWIND_DEBUG_LOG(msg, ...)  _LIBUNWIND_LOG(msg, __VA_ARGS__)
            |                                                          ~~~  ^~~~~~~~~~~
      libunwind/src/config.h:181:45: note: expanded from macro '_LIBUNWIND_LOG'
        181 |     fprintf(stderr, "libunwind: " msg "\n", __VA_ARGS__);                      \
            |                                   ~~~       ^~~~~~~~~~~
      In file included from libunwind/src/libunwind.cpp:31:
      In file included from libunwind/src/UnwindCursor.hpp:52:
      libunwind/src/CompactUnwinder.hpp:458:39: error: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]
        457 |                            "function starting at 0x%llX",
            |                                                    ~~~~
            |                                                    %lX
        458 |                             encoding, functionStart);
            |                                       ^~~~~~~~~~~~~
      libunwind/src/config.h:215:63: note: expanded from macro '_LIBUNWIND_DEBUG_LOG'
        215 |   #define _LIBUNWIND_DEBUG_LOG(msg, ...)  _LIBUNWIND_LOG(msg, __VA_ARGS__)
            |                                                          ~~~  ^~~~~~~~~~~
      libunwind/src/config.h:181:45: note: expanded from macro '_LIBUNWIND_LOG'
        181 |     fprintf(stderr, "libunwind: " msg "\n", __VA_ARGS__);                      \
            |                                   ~~~       ^~~~~~~~~~~
      ```
    
    This avoids a -Werror failure with clang >= 23.
    
    MFC after:      3 days
    
    (cherry picked from commit 8a8c14464dd372495c9bf4b87c9b88d73f78d587)
---
 contrib/llvm-project/libunwind/src/CompactUnwinder.hpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/contrib/llvm-project/libunwind/src/CompactUnwinder.hpp b/contrib/llvm-project/libunwind/src/CompactUnwinder.hpp
index a7a8a153d86a..490f61496998 100644
--- a/contrib/llvm-project/libunwind/src/CompactUnwinder.hpp
+++ b/contrib/llvm-project/libunwind/src/CompactUnwinder.hpp
@@ -12,6 +12,7 @@
 #ifndef __COMPACT_UNWINDER_HPP__
 #define __COMPACT_UNWINDER_HPP__
 
+#include <inttypes.h>
 #include <stdint.h>
 #include <stdlib.h>
 
@@ -335,8 +336,8 @@ int CompactUnwinder_x86_64<A>::stepWithCompactEncodingRBPFrame(
     default:
       (void)functionStart;
       _LIBUNWIND_DEBUG_LOG("bad register for RBP frame, encoding=%08X for "
-                           "function starting at 0x%llX",
-                            compactEncoding, functionStart);
+                           "function starting at 0x%" PRIu64 "X",
+                           compactEncoding, functionStart);
       _LIBUNWIND_ABORT("invalid compact unwind encoding");
     }
     savedRegisters += 8;
@@ -454,8 +455,8 @@ int CompactUnwinder_x86_64<A>::stepWithCompactEncodingFrameless(
       break;
     default:
       _LIBUNWIND_DEBUG_LOG("bad register for frameless, encoding=%08X for "
-                           "function starting at 0x%llX",
-                            encoding, functionStart);
+                           "function starting at 0x%" PRIu64 "X",
+                           encoding, functionStart);
       _LIBUNWIND_ABORT("invalid compact unwind encoding");
     }
     savedRegisters += 8;