Fix loading of lto_section on strict alignment targets (PR lto/91078).
authorMartin Liska <mliska@suse.cz>
Thu, 4 Jul 2019 11:38:28 +0000 (13:38 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Thu, 4 Jul 2019 11:38:28 +0000 (11:38 +0000)
2019-07-04  Martin Liska  <mliska@suse.cz>

PR lto/91078
* lto-common.c (lto_file_finalize): Use memcpy to set
file_data->lto_section_header.

From-SVN: r273077

gcc/lto/ChangeLog
gcc/lto/lto-common.c

index 23ad84e..871598c 100644 (file)
@@ -1,3 +1,9 @@
+2019-07-04  Martin Liska  <mliska@suse.cz>
+
+       PR lto/91078
+       * lto-common.c (lto_file_finalize): Use memcpy to set
+       file_data->lto_section_header.
+
 2019-07-03  Martin Liska  <mliska@suse.cz>
 
        * lto-common.c: Read LTO section and verify header.
index bc8c2b4..3c6d7b2 100644 (file)
@@ -2199,7 +2199,7 @@ lto_file_finalize (struct lto_file_decl_data *file_data, lto_file *file)
       return;
     }
 
-  file_data->lto_section_header = *(const lto_section *)data;
+  memcpy (&file_data->lto_section_header, data, sizeof (lto_section));
   lto_check_version (file_data->lto_section_header.major_version,
                     file_data->lto_section_header.minor_version,
                     file_data->file_name);