From: Daniel Dunbar Date: Thu, 22 Jan 2009 23:19:32 +0000 (+0000) Subject: ccc: Bug fix, driver logic was allowing child jobs to pipe output when X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5f02d554555af7254bbe33529d4e574eeeac035c;p=clang ccc: Bug fix, driver logic was allowing child jobs to pipe output when parent wasn't expecting it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62811 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/ccc/ccclib/Driver.py b/tools/ccc/ccclib/Driver.py index 3452ed173b..2ba1cf6cd8 100644 --- a/tools/ccc/ccclib/Driver.py +++ b/tools/ccc/ccclib/Driver.py @@ -672,8 +672,8 @@ class Driver(object): inputList = phase.inputs[0].inputs # Only try to use pipes when exactly one input. - canAcceptPipe = len(inputList) == 1 and tool.acceptsPipedInput() - inputs = [createJobs(tc, p, canAcceptPipe, False, + attemptToPipeInput = len(inputList) == 1 and tool.acceptsPipedInput() + inputs = [createJobs(tc, p, attemptToPipeInput, False, arch, tcArgs, linkingOutput) for p in inputList] @@ -694,7 +694,7 @@ class Driver(object): # Figure out where to put the job (pipes). jobList = jobs - if canAcceptPipe and isinstance(inputs[0].source, Jobs.PipedJob): + if isinstance(inputs[0].source, Jobs.PipedJob): jobList = inputs[0].source baseInput = inputs[0].baseInput diff --git a/tools/ccc/test/ccc/universal-hello.c b/tools/ccc/test/ccc/universal-hello.c index 8d4b3e3364..7702b38229 100644 --- a/tools/ccc/test/ccc/universal-hello.c +++ b/tools/ccc/test/ccc/universal-hello.c @@ -1,6 +1,9 @@ // RUN: xcc -arch ppc -arch i386 -arch x86_64 %s -o %t && // RUN: %t | grep "Hello, World" && +// RUN: xcc -pipe -arch ppc -arch i386 -arch x86_64 %s -o %t && +// RUN: %t | grep "Hello, World" && + // Check that multiple archs are handled properly. // RUN: xcc -ccc-print-phases -### -arch ppc -arch ppc %s | grep linker- | count 1