From: Daniel Dunbar Date: Mon, 2 Aug 2010 02:38:08 +0000 (+0000) Subject: Driver: Simplify logic for sending 'clang -E t.c' output to stdout. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=defcda7ea696c41ecaad36cc77f2360b91697265;p=clang Driver: Simplify logic for sending 'clang -E t.c' output to stdout. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110009 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp index 077c05ba16..b394bf9301 100644 --- a/lib/Driver/Driver.cpp +++ b/lib/Driver/Driver.cpp @@ -1078,19 +1078,6 @@ void Driver::BuildJobsForAction(Compilation &C, 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(A) && !C.getArgs().hasArg(options::OPT_o)) - OutputToPipe = true; - } - } - // Figure out where to put the job (pipes). Job *Dest = &C.getJobs(); assert(!InputInfos[0].isPipe() && "Unrequested pipe!"); @@ -1107,18 +1094,6 @@ void Driver::BuildJobsForAction(Compilation &C, // where to put the new job. if (JA->getType() == types::TY_Nothing) { Result = InputInfo(A->getType(), BaseInput); - } else if (OutputToPipe) { - // Append to current piped job or create a new one as appropriate. - PipedJob *PJ = dyn_cast(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(Dest)->addJob(PJ); - Dest = PJ; - } - Result = InputInfo(PJ, A->getType(), BaseInput); } else { Result = InputInfo(GetNamedOutputPath(C, *JA, BaseInput, AtTopLevel), A->getType(), BaseInput); @@ -1150,6 +1125,10 @@ const char *Driver::GetNamedOutputPath(Compilation &C, return C.addResultFile(FinalOutput->getValue(C.getArgs())); } + // Default to writing to stdout? + if (AtTopLevel && isa(JA)) + return "-"; + // Output to a temporary file? if (!AtTopLevel && !C.getArgs().hasArg(options::OPT_save_temps)) { std::string TmpName =