On Thu, Jan 05, 2017 at 02:08:40PM +0100, Martin Liška wrote:
> diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
> index 14e038c02b3..49df9e19157 100644
> --- a/gcc/c-family/c-opts.c
> +++ b/gcc/c-family/c-opts.c
> @@ -744,7 +744,12 @@ c_common_post_options (const char **pfilename)
> in_fnames[0] = "";
> }
> else if (strcmp (in_fnames[0], "-") == 0)
> - in_fnames[0] = "";
> + {
> + if (pch_file)
> + error ("cannot use '-' as input filename for a precompiled header");
Please use %<-%> instead of '-', in both places.
> diff --git a/gcc/gcc.c b/gcc/gcc.c
> index 8154953eb1d..f42c4ef372e 100644
> --- a/gcc/gcc.c
> +++ b/gcc/gcc.c
> @@ -8325,7 +8325,19 @@ lookup_compiler (const char *name, size_t length,
> const char *language)
> {
> for (cp = compilers + n_compilers - 1; cp >= compilers; cp--)
> if (cp->suffix[0] == '@' && !strcmp (cp->suffix + 1, language))
> - return cp;
> + {
> + if (name != NULL && strcmp (name, "-") == 0
> + && (strcmp (cp->suffix, "@c-header") == 0
> + || strcmp (cp->suffix, "@c++-header") == 0))
> + {
> + fatal_error (input_location,
> + "cannot use '-' as input filename for a "
> + "precompiled header");
> + return 0;
> + }
Isn't fatal_error noreturn? Then it doesn't make sense to do return 0
after it, so perhaps remove {} and return 0; ?
Ok with those changes.
Jakub