%C process CPP_SPEC as a spec. A capital C is actually used here.
%1 process CC1_SPEC as a spec.
%2 process CC1PLUS_SPEC as a spec.
+ %| output "-" if the input for the current command is coming from a pipe.
%* substitute the variable part of a matched option. (See below.)
Note that each comma in the substituted string is replaced by
a single space.
search dirs for it. */
static int this_is_library_file;
+/* Nonzero means that the input of this command is coming from a pipe. */
+static int input_from_pipe;
+
/* Process the spec SPEC and run the commands specified therein.
Returns 0 if the spec is successfully processed; -1 if failed. */
delete_this_arg = 0;
this_is_output_file = 0;
this_is_library_file = 0;
+ input_from_pipe = 0;
value = do_spec_1 (spec, 0, NULL_PTR);
Otherwise, execute now and don't pass the `|' as an arg. */
if (i < n_switches)
{
+ input_from_pipe = 1;
switches[i].valid = 1;
break;
}
delete_this_arg = 0;
this_is_output_file = 0;
this_is_library_file = 0;
+ input_from_pipe = 0;
break;
case '|':
}
break;
+ case '|':
+ if (input_from_pipe)
+ do_spec_1 ("-", 0, NULL_PTR);
+ break;
+
default:
abort ();
}