On 11/07/2023 10:37, Florian Weimer via Gcc-patches wrote:
libgcc/

        * config/aarch64/aarch64-unwind.h (aarch64_cie_signed_with_b_key):
        Add missing const qualifier.  Cast from const unsigned char *
        to const char *.  Use __builtin_strchr to avoid an implicit
        function declaration.
        * config/aarch64/linux-unwind.h (aarch64_fallback_frame_state):
        Add missing cast.

---
diff --git a/libgcc/config/aarch64/linux-unwind.h 
b/libgcc/config/aarch64/linux-unwind.h
index 00eba866049..93da7a9537d 100644
--- a/libgcc/config/aarch64/linux-unwind.h
+++ b/libgcc/config/aarch64/linux-unwind.h
@@ -77,7 +77,7 @@ aarch64_fallback_frame_state (struct _Unwind_Context *context,
      }
rt_ = context->cfa;
-  sc = &rt_->uc.uc_mcontext;
+  sc = (struct sigcontext *) &rt_->uc.uc_mcontext;
/* This define duplicates the definition in aarch64.md */
  #define SP_REGNUM 31



This looks somewhat dubious. I'm not particularly familiar with the kernel headers, but a quick look suggests an mcontext_t is nothing like a sigcontext_t. So isn't the cast just papering over some more fundamental problem?

R.

Reply via email to