This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][3/n] Fix PR65015


This fixes another leakage of random LTO temporary filenames into
executables, this time via .symtab FILE entries.  Removing it
doesn't work (GNU ld adds it back) and is said to be incorrect.
So the following patch, similar to the dwarf CU DW_AT_name uses
<artificial>.

Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.

Richard.

2015-02-16  Richard Biener  <rguenther@suse.de>

        PR lto/65015
        * varasm.c (default_file_start): For LTO produced units
        emit <artificial> as file directive.

Index: gcc/varasm.c
===================================================================
--- gcc/varasm.c	(revision 220677)
+++ gcc/varasm.c	(working copy)
@@ -7043,7 +7047,13 @@ default_file_start (void)
     fputs (ASM_APP_OFF, asm_out_file);
 
   if (targetm.asm_file_start_file_directive)
-    output_file_directive (asm_out_file, main_input_filename);
+    {
+      /* LTO produced units have no meaningful main_input_filename.  */
+      if (in_lto_p)
+	output_file_directive (asm_out_file, "<artificial>");
+      else
+	output_file_directive (asm_out_file, main_input_filename);
+    }
 }
 
 /* This is a generic routine suitable for use as TARGET_ASM_FILE_END


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]