From 89f791e2c204854bba96effd7dc27883fdcacf53 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Mon, 2 Aug 2010 02:38:08 +0000 Subject: [PATCH] Driver: Simplify logic for sending 'clang -E t.c' output to stdout. llvm-svn: 110009 --- clang/lib/Driver/Driver.cpp | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 077c05ba166d..b394bf93012f 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/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 =