Initialize file_data->lto_section_header before lto_mode_identity_table call.
authorMartin Liska <mliska@suse.cz>
Fri, 17 Apr 2020 08:57:03 +0000 (10:57 +0200)
committerMartin Liska <mliska@suse.cz>
Fri, 17 Apr 2020 08:57:03 +0000 (10:57 +0200)
PR lto/94612
* lto-common.c: Initialize file_data->lto_section_header
before lto_mode_identity_table call.  It is needed because
it decompresses a LTO section.

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

index 829b26d40051ac57ff29c3e6c68862a53fbbfbe6..a0c14899d756db23ed9896e0466f3ed6d68cc8aa 100644 (file)
@@ -1,3 +1,10 @@
+2020-04-17  Martin Liska  <mliska@suse.cz>
+
+       PR lto/94612
+       * lto-common.c: Initialize file_data->lto_section_header
+       before lto_mode_identity_table call.  It is needed because
+       it decompresses a LTO section.
+
 2020-04-08  Martin Liska  <mliska@suse.cz>
 
        PR c++/94314
index e073abce2e732a0a25e6280a4136cf4135a94abe..cee5f0e99358b410843c395de4bb325c0a2ce4c0 100644 (file)
@@ -2197,11 +2197,6 @@ lto_file_finalize (struct lto_file_decl_data *file_data, lto_file *file,
   file_data->renaming_hash_table = lto_create_renaming_table ();
   file_data->file_name = file->filename;
   file_data->order = order;
-#ifdef ACCEL_COMPILER
-  lto_input_mode_table (file_data);
-#else
-  file_data->mode_table = lto_mode_identity_table;
-#endif
 
   /* Read and verify LTO section.  */
   data = lto_get_summary_section_data (file_data, LTO_section_lto, &len);
@@ -2217,6 +2212,12 @@ lto_file_finalize (struct lto_file_decl_data *file_data, lto_file *file,
                     file_data->lto_section_header.minor_version,
                     file_data->file_name);
 
+#ifdef ACCEL_COMPILER
+  lto_input_mode_table (file_data);
+#else
+  file_data->mode_table = lto_mode_identity_table;
+#endif
+
   data = lto_get_summary_section_data (file_data, LTO_section_decls, &len);
   if (data == NULL)
     {