aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2021-01-19 11:43:15 -0800
committerNathan Sidwell <nathan@acm.org>2021-01-22 04:56:11 -0800
commit4804de453e7f5f90dd5e64114abbd272f9e8f62d (patch)
tree02574e3afc415618ac937401e062ac98753d0960 /gcc/gcc.c
parent8bad25eb56bd16f3482f856a75b1c1ae5cfe1c4f (diff)
downloadgcc-4804de453e7f5f90dd5e64114abbd272f9e8f62d.zip
gcc-4804de453e7f5f90dd5e64114abbd272f9e8f62d.tar.gz
gcc-4804de453e7f5f90dd5e64114abbd272f9e8f62d.tar.bz2
driver: do not check file existence here [PR 98452]
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.
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r--gcc/gcc.c36
1 files changed, 2 insertions, 34 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 7dccfad..aa5774a 100644
--- 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;
}