aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/gcc.c12
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 52a4c88..d6c9dd7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,7 @@
2002-12-17 Jason Merrill <jason@redhat.com>
+ * gcc.c (do_spec_1) ['W']: End any pending argument from the braces.
+
* calls.c (expand_call): Don't try to be clever about expanding
the return slot address.
diff --git a/gcc/gcc.c b/gcc/gcc.c
index ad1a478..dea12aa 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4778,6 +4778,18 @@ do_spec_1 (spec, inswitch, soft_matched_part)
p = handle_braces (p + 1);
if (p == 0)
return -1;
+ /* End any pending argument. */
+ if (arg_going)
+ {
+ obstack_1grow (&obstack, 0);
+ string = obstack_finish (&obstack);
+ if (this_is_library_file)
+ string = find_file (string);
+ store_arg (string, delete_this_arg, this_is_output_file);
+ if (this_is_output_file)
+ outfiles[input_file_number] = string;
+ arg_going = 0;
+ }
/* If any args were output, mark the last one for deletion
on failure. */
if (argbuf_index != cur_index)