The patch is about filling a padding byte that is later
streamed with memcpy.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.

Ready to be installed?
Thanks,
Martin

gcc/ChangeLog:

        PR lto/98912
        * lto-streamer-out.c (produce_lto_section): Fill up missing
        padding.
        * lto-streamer.h (struct lto_section): Add _padding field.
---
 gcc/lto-streamer-out.c | 2 +-
 gcc/lto-streamer.h     | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 405f3bfc56c..a26d4885800 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -2670,7 +2670,7 @@ produce_lto_section ()
bool slim_object = flag_generate_lto && !flag_fat_lto_objects;
   lto_section s
-    = { LTO_major_version, LTO_minor_version, slim_object, 0 };
+    = { LTO_major_version, LTO_minor_version, slim_object, 0, 0 };
   s.set_compression (compression);
   lto_write_data (&s, sizeof s);
   lto_end_section ();
diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h
index 7736ae77b8b..5c7cd84d46f 100644
--- a/gcc/lto-streamer.h
+++ b/gcc/lto-streamer.h
@@ -369,6 +369,7 @@ struct lto_section
   int16_t major_version;
   int16_t minor_version;
   unsigned char slim_object;
+  unsigned char _padding;
/* Flags is a private field that is not defined publicly. */
   uint16_t flags;
--
2.30.0

Reply via email to