driver: do not check file existence here [PR 98452]
authorNathan Sidwell <nathan@acm.org>
Tue, 19 Jan 2021 19:43:15 +0000 (11:43 -0800)
committerNathan Sidwell <nathan@acm.org>
Fri, 22 Jan 2021 12:56:11 +0000 (04:56 -0800)
The driver checks whether OPT_SPECIAL_input_file options are readable.
There's no need, the compiler proper will do that anyway.

gcc/
* gcc.c (process_command): Don't check OPT_SPECIAL_input_file
existence here.

gcc/gcc.c

index 7dccfadfef2bd1a6d3411b54788f33dea751f494..aa5774af7e719d34e1010e6b13180c2580ca0898 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4811,44 +4811,12 @@ process_command (unsigned int decoded_options_count,
       if (decoded_options[j].opt_index == OPT_SPECIAL_input_file)
        {
          const char *arg = decoded_options[j].arg;
-          const char *p = strrchr (arg, '@');
-          char *fname;
-         long offset;
-         int consumed;
+
 #ifdef HAVE_TARGET_OBJECT_SUFFIX
          arg = convert_filename (arg, 0, access (arg, F_OK));
 #endif
-         /* For LTO static archive support we handle input file
-            specifications that are composed of a filename and
-            an offset like FNAME@OFFSET.  */
-         if (p
-             && p != arg
-             && sscanf (p, "@%li%n", &offset, &consumed) >= 1
-             && strlen (p) == (unsigned int)consumed)
-           {
-              fname = (char *)xmalloc (p - arg + 1);
-              memcpy (fname, arg, p - arg);
-              fname[p - arg] = '\0';
-             /* Only accept non-stdin and existing FNAME parts, otherwise
-                try with the full name.  */
-             if (strcmp (fname, "-") == 0 || access (fname, F_OK) < 0)
-               {
-                 free (fname);
-                 fname = xstrdup (arg);
-               }
-           }
-         else
-           fname = xstrdup (arg);
-
-          if (strcmp (fname, "-") != 0 && access (fname, F_OK) < 0)
-           {
-             bool resp = fname[0] == '@' && access (fname + 1, F_OK) < 0;
-             error ("%s: %m", fname + resp);
-           }
-          else
-           add_infile (arg, spec_lang);
+         add_infile (arg, spec_lang);
 
-          free (fname);
          continue;
        }