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

Reply via email to