https://gcc.gnu.org/g:bace01eeab69cabd0a326174909ced554af85c79

commit r16-3889-gbace01eeab69cabd0a326174909ced554af85c79
Author: David Faust <[email protected]>
Date:   Mon Sep 15 15:03:31 2025 -0700

    ctf: Fix struct size truncation in 32-bit hosts [PR121903,PR121411]
    
    The 'size' argument of ctf_add_sou was size_t.  After the prior fixes
    for PR121411, this could cause the struct size to be truncated when
    encoding extremely large structs on a host where size_t is smaller than
    unsigned HOST_WIDE_INT, manifesting for example as the test failure
    reported in PR121903.  Change the argument to uHWI to resolve the issue.
    
            PR debug/121411
            PR debug/121903
    
    gcc/
    
            * ctfc.h (ctf_add_sou): Change size arg from size_t to uHWI.
            * ctfc.cc (ctf_add_sou): Likewise.

Diff:
---
 gcc/ctfc.cc | 2 +-
 gcc/ctfc.h  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/ctfc.cc b/gcc/ctfc.cc
index 51511d69baa0..221e62e8f45d 100644
--- a/gcc/ctfc.cc
+++ b/gcc/ctfc.cc
@@ -798,7 +798,7 @@ ctf_add_function (ctf_container_ref ctfc, uint32_t flag, 
const char * name,
 
 ctf_dtdef_ref
 ctf_add_sou (ctf_container_ref ctfc, uint32_t flag, const char * name,
-            uint32_t kind, size_t size, dw_die_ref die)
+            uint32_t kind, unsigned HOST_WIDE_INT size, dw_die_ref die)
 {
   ctf_dtdef_ref dtd;
 
diff --git a/gcc/ctfc.h b/gcc/ctfc.h
index 32c73be6a412..26f35f0ac6f9 100644
--- a/gcc/ctfc.h
+++ b/gcc/ctfc.h
@@ -439,7 +439,7 @@ extern ctf_dtdef_ref ctf_add_function (ctf_container_ref, 
uint32_t,
                                       const char *, const ctf_funcinfo_t *,
                                       dw_die_ref, bool, int);
 extern ctf_dtdef_ref ctf_add_sou (ctf_container_ref, uint32_t, const char *,
-                                 uint32_t, size_t, dw_die_ref);
+                                 uint32_t, unsigned HOST_WIDE_INT, dw_die_ref);
 
 extern int ctf_add_enumerator (ctf_container_ref, ctf_dtdef_ref, const char *,
                               HOST_WIDE_INT, dw_die_ref);

Reply via email to