Hello. As reported here https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78970#c7, we should not report error when one want to pre-compile a {c,c++}-header file.
Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Martin
>From bf226badedf38c81d09e34bde6ce0ff694e5b4fd Mon Sep 17 00:00:00 2001 From: marxin <mli...@suse.cz> Date: Mon, 9 Jan 2017 14:20:41 +0100 Subject: [PATCH] Do not error when -E provided (PR pch/78970). gcc/ChangeLog: 2017-01-09 Martin Liska <mli...@suse.cz> PR pch/78970 * gcc.c (driver_handle_option): Handle OPT_E and set have_E. (lookup_compiler): Do not show error message with have_E. --- gcc/gcc.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/gcc.c b/gcc/gcc.c index 1d2ed99ef5f..b9cdc5d81a8 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -1931,6 +1931,9 @@ static int have_c = 0; /* Was the option -o passed. */ static int have_o = 0; +/* Were the option -E passed. */ +static int have_E = 0; + /* Pointer to output file name passed in with -o. */ static const char *output_file = 0; @@ -4067,6 +4070,10 @@ driver_handle_option (struct gcc_options *opts, validated = true; break; + case OPT_E: + have_E = true; + break; + case OPT_x: spec_lang = arg; if (!strcmp (spec_lang, "none")) @@ -8328,7 +8335,8 @@ lookup_compiler (const char *name, size_t length, const char *language) { if (name != NULL && strcmp (name, "-") == 0 && (strcmp (cp->suffix, "@c-header") == 0 - || strcmp (cp->suffix, "@c++-header") == 0)) + || strcmp (cp->suffix, "@c++-header") == 0) + && !have_E) fatal_error (input_location, "cannot use %<-%> as input filename for a " "precompiled header"); -- 2.11.0