This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH][3/n] Fix PR65015
- From: Richard Biener <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 16 Feb 2015 15:25:31 +0100 (CET)
- Subject: [PATCH][3/n] Fix PR65015
- Authentication-results: sourceware.org; auth=none
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