]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Error for '-' as filename of a precompiled header (PR pch/78970)
authorMartin Liska <mliska@suse.cz>
Tue, 10 Jan 2017 14:07:41 +0000 (15:07 +0100)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 10 Jan 2017 14:07:41 +0000 (14:07 +0000)
2017-01-10  Martin Liska  <mliska@suse.cz>

Backport from mainline
2017-01-05  Martin Liska  <mliska@suse.cz>

PR pch/78970
* gcc.c (lookup_compiler): Reject '-' filename for a precompiled
header.
2017-01-10  Martin Liska  <mliska@suse.cz>

Backport from mainline
2017-01-05  Martin Liska  <mliska@suse.cz>

PR pch/78970
* c-opts.c (c_common_post_options): Reject '-' filename for a precompiled
header.

From-SVN: r244267

gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-opts.c
gcc/gcc.c

index 13ceb88ddce7e46448f2438534def06de3be02fc..31a9231f16e5ac8a37471bda5791ce5050ae142e 100644 (file)
@@ -1,3 +1,12 @@
+2017-01-10  Martin Liska  <mliska@suse.cz>
+
+       Backport from mainline
+       2017-01-05  Martin Liska  <mliska@suse.cz>
+
+       PR pch/78970
+       * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
+       header.
+
 2017-01-10  Chung-Ju Wu  <jasonwucj@gmail.com>
 
        Backport from mainline
index 8d5304a36806874bce26fa6a989ff59ae938d1fd..2dce6058d6f9fcacbe4b69f2b517cef67ef22e76 100644 (file)
@@ -1,3 +1,12 @@
+2017-01-10  Martin Liska  <mliska@suse.cz>
+
+       Backport from mainline
+       2017-01-05  Martin Liska  <mliska@suse.cz>
+
+       PR pch/78970
+       * c-opts.c (c_common_post_options): Reject '-' filename for a precompiled
+       header.
+
 2016-07-07  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
index 718a05281a5812500ed26d80e96002943172974b..ac3976c1387f48cc183480a7a11ad9e487ddbed9 100644 (file)
@@ -749,7 +749,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");
+
+      in_fnames[0] = "";
+    }
 
   if (out_fname == NULL || !strcmp (out_fname, "-"))
     out_fname = "";
index 64d2e34c8608b0e7ffba29724e9baa13e36da757..f3b3f01209c1a889843f2ae8f76f294bf6057954 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -7911,7 +7911,16 @@ 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 cp;
+         }
 
       error ("language %s not recognized", language);
       return 0;