aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorWeiwen Liu <weiwen.liu@yale.edu>1998-07-13 16:54:48 -0600
committerJeff Law <law@gcc.gnu.org>1998-07-13 16:54:48 -0600
commit24c2aa306882137cee93bc8871269008e58ff53d (patch)
tree858ac84570803d8108d3b9d9bc98003fe3b45756 /gcc
parenta5dd9832a1cc15e1fe78ed61f3ba1f0fed6ceec5 (diff)
downloadgcc-24c2aa306882137cee93bc8871269008e58ff53d.zip
gcc-24c2aa306882137cee93bc8871269008e58ff53d.tar.gz
gcc-24c2aa306882137cee93bc8871269008e58ff53d.tar.bz2
gcc.c (do_spec_1): Fix %O handling for secure temporary file creation.
8 * gcc.c (do_spec_1): Fix %O handling for secure temporary file creation. From-SVN: r21124
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gcc.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 17978f7..4fbd7d0 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -3610,10 +3610,21 @@ do_spec_1 (spec, inswitch, soft_matched_part)
t->next = temp_names;
temp_names = t;
}
- t->length = p - suffix;
- t->suffix = save_string (suffix, p - suffix);
- t->unique = (c != 'g');
- temp_filename = make_temp_file (suffix);
+ if (strncmp (suffix, "%O", 2) == 0)
+ {
+ t->length = strlen(OBJECT_SUFFIX);
+ t->suffix = save_string (OBJECT_SUFFIX,
+ strlen(OBJECT_SUFFIX));
+ t->unique = (c != 'g');
+ temp_filename = make_temp_file (OBJECT_SUFFIX);
+ }
+ else
+ {
+ t->length = p - suffix;
+ t->suffix = save_string (suffix, p - suffix);
+ t->unique = (c != 'g');
+ temp_filename = make_temp_file (suffix);
+ }
temp_filename_length = strlen (temp_filename);
t->filename = temp_filename;
t->filename_length = temp_filename_length;