Commit f78a6ae4 by Max Ostapenko Committed by Maxim Ostapenko

re PR driver/64690 (-freport-bug issue with comments)

2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR driver/64690
	* gcc.c (insert_comments): New function.
	(try_generate_repro): Call it.
	(append_text): Removed.

From-SVN: r219990
parent 0c3068e0
2015-01-22 Max Ostapenko <m.ostapenko@partner.samsung.com>
PR driver/64690
* gcc.c (insert_comments): New function.
(try_generate_repro): Call it.
(append_text): Removed.
2015-01-22 Richard Biener <rguenther@suse.de> 2015-01-22 Richard Biener <rguenther@suse.de>
* ipa-inline.c (can_inline_edge_p): Disable inlining of edges * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
......
...@@ -6487,6 +6487,29 @@ out: ...@@ -6487,6 +6487,29 @@ out:
return status; return status;
} }
/* This routine reads lines from IN file, adds C++ style comments
at the begining of each line and writes result into OUT. */
static void
insert_comments (const char *file_in, const char *file_out)
{
FILE *in = fopen (file_in, "rb");
FILE *out = fopen (file_out, "wb");
char line[256];
bool add_comment = true;
while (fgets (line, sizeof (line), in))
{
if (add_comment)
fputs ("// ", out);
fputs (line, out);
add_comment = strchr (line, '\n') != NULL;
}
fclose (in);
fclose (out);
}
/* This routine adds preprocessed source code into the given ERR_FILE. /* This routine adds preprocessed source code into the given ERR_FILE.
To do this, it adds "-E" to NEW_ARGV and execute RUN_ATTEMPT routine to To do this, it adds "-E" to NEW_ARGV and execute RUN_ATTEMPT routine to
add information in report file. RUN_ATTEMPT should return add information in report file. RUN_ATTEMPT should return
...@@ -6523,19 +6546,6 @@ do_report_bug (const char **new_argv, const int nargs, ...@@ -6523,19 +6546,6 @@ do_report_bug (const char **new_argv, const int nargs,
} }
} }
/* Append string STR to file FILE. */
static void
append_text (char *file, const char *str)
{
int fd = open (file, O_RDWR | O_APPEND);
if (fd < 0)
return;
write (fd, str, strlen (str));
close (fd);
}
/* Try to reproduce ICE. If bug is reproducible, generate report .err file /* Try to reproduce ICE. If bug is reproducible, generate report .err file
containing GCC configuration, backtrace, compiler's command line options containing GCC configuration, backtrace, compiler's command line options
and preprocessed source code. */ and preprocessed source code. */
...@@ -6598,16 +6608,10 @@ try_generate_repro (const char **argv) ...@@ -6598,16 +6608,10 @@ try_generate_repro (const char **argv)
emit_system_info = 1; emit_system_info = 1;
} }
if (emit_system_info)
append_text (temp_stderr_files[attempt], "/*\n");
status = run_attempt (new_argv, temp_stdout_files[attempt], status = run_attempt (new_argv, temp_stdout_files[attempt],
temp_stderr_files[attempt], emit_system_info, temp_stderr_files[attempt], emit_system_info,
append); append);
if (emit_system_info)
append_text (temp_stderr_files[attempt], "*/\n");
if (status != ATTEMPT_STATUS_ICE) if (status != ATTEMPT_STATUS_ICE)
{ {
fnotice (stderr, "The bug is not reproducible, so it is" fnotice (stderr, "The bug is not reproducible, so it is"
...@@ -6619,11 +6623,17 @@ try_generate_repro (const char **argv) ...@@ -6619,11 +6623,17 @@ try_generate_repro (const char **argv)
if (!check_repro (temp_stdout_files, temp_stderr_files)) if (!check_repro (temp_stdout_files, temp_stderr_files))
goto out; goto out;
/* In final attempt we append compiler options and preprocesssed code to last {
generated .err file with configuration and backtrace. */ /* Insert commented out backtrace into report file. */
do_report_bug (new_argv, nargs, char **stderr_commented = &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1];
&temp_stderr_files[RETRY_ICE_ATTEMPTS - 1], insert_comments (temp_stderr_files[RETRY_ICE_ATTEMPTS - 1],
&temp_stdout_files[RETRY_ICE_ATTEMPTS - 1]); *stderr_commented);
/* In final attempt we append compiler options and preprocesssed code to last
generated .out file with configuration and backtrace. */
char **output = &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1];
do_report_bug (new_argv, nargs, stderr_commented, output);
}
out: out:
for (i = 0; i < RETRY_ICE_ATTEMPTS * 2; i++) for (i = 0; i < RETRY_ICE_ATTEMPTS * 2; i++)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment