forked from OSchip/llvm-project
Driver: Simplify logic for sending 'clang -E t.c' output to stdout.
llvm-svn: 110009
This commit is contained in:
parent
a7dd15888b
commit
89f791e2c2
|
@ -1078,19 +1078,6 @@ void Driver::BuildJobsForAction(Compilation &C,
|
||||||
InputInfos.push_back(II);
|
InputInfos.push_back(II);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determine if we should output to a pipe.
|
|
||||||
bool OutputToPipe = false;
|
|
||||||
if (CanAcceptPipe && T.canPipeOutput()) {
|
|
||||||
// Some actions default to writing to a pipe if they are the top level phase
|
|
||||||
// and there was no user override.
|
|
||||||
//
|
|
||||||
// FIXME: Is there a better way to handle this?
|
|
||||||
if (AtTopLevel) {
|
|
||||||
if (isa<PreprocessJobAction>(A) && !C.getArgs().hasArg(options::OPT_o))
|
|
||||||
OutputToPipe = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Figure out where to put the job (pipes).
|
// Figure out where to put the job (pipes).
|
||||||
Job *Dest = &C.getJobs();
|
Job *Dest = &C.getJobs();
|
||||||
assert(!InputInfos[0].isPipe() && "Unrequested pipe!");
|
assert(!InputInfos[0].isPipe() && "Unrequested pipe!");
|
||||||
|
@ -1107,18 +1094,6 @@ void Driver::BuildJobsForAction(Compilation &C,
|
||||||
// where to put the new job.
|
// where to put the new job.
|
||||||
if (JA->getType() == types::TY_Nothing) {
|
if (JA->getType() == types::TY_Nothing) {
|
||||||
Result = InputInfo(A->getType(), BaseInput);
|
Result = InputInfo(A->getType(), BaseInput);
|
||||||
} else if (OutputToPipe) {
|
|
||||||
// Append to current piped job or create a new one as appropriate.
|
|
||||||
PipedJob *PJ = dyn_cast<PipedJob>(Dest);
|
|
||||||
if (!PJ) {
|
|
||||||
PJ = new PipedJob();
|
|
||||||
// FIXME: Temporary hack so that -ccc-print-bindings work until we have
|
|
||||||
// pipe support. Please remove later.
|
|
||||||
if (!CCCPrintBindings)
|
|
||||||
cast<JobList>(Dest)->addJob(PJ);
|
|
||||||
Dest = PJ;
|
|
||||||
}
|
|
||||||
Result = InputInfo(PJ, A->getType(), BaseInput);
|
|
||||||
} else {
|
} else {
|
||||||
Result = InputInfo(GetNamedOutputPath(C, *JA, BaseInput, AtTopLevel),
|
Result = InputInfo(GetNamedOutputPath(C, *JA, BaseInput, AtTopLevel),
|
||||||
A->getType(), BaseInput);
|
A->getType(), BaseInput);
|
||||||
|
@ -1150,6 +1125,10 @@ const char *Driver::GetNamedOutputPath(Compilation &C,
|
||||||
return C.addResultFile(FinalOutput->getValue(C.getArgs()));
|
return C.addResultFile(FinalOutput->getValue(C.getArgs()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default to writing to stdout?
|
||||||
|
if (AtTopLevel && isa<PreprocessJobAction>(JA))
|
||||||
|
return "-";
|
||||||
|
|
||||||
// Output to a temporary file?
|
// Output to a temporary file?
|
||||||
if (!AtTopLevel && !C.getArgs().hasArg(options::OPT_save_temps)) {
|
if (!AtTopLevel && !C.getArgs().hasArg(options::OPT_save_temps)) {
|
||||||
std::string TmpName =
|
std::string TmpName =
|
||||||
|
|
Loading…
Reference in New Issue