summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2011-08-01 19:58:48 +0000
committerChad Rosier <mcrosier@apple.com>2011-08-01 19:58:48 +0000
commit96d690ccdf2e1743a72f45a6b139af4b945e562e (patch)
tree56bb9b05fb0dfa077dc77249a83eba94965429f2 /clang
parentc099a6f9ce059ca334cc7b173e450a0c94bb770e (diff)
downloadbcm5719-llvm-96d690ccdf2e1743a72f45a6b139af4b945e562e.tar.gz
bcm5719-llvm-96d690ccdf2e1743a72f45a6b139af4b945e562e.zip
Driver: When compiling i386 -fapple-kext code, we fallback to llvmgcc.
Unfortunately, llvmgcc doesn't always work when writing temporary output to /dev/null. Therefore, create a temp file that is later deleted. rdar://9837692 llvm-svn: 136644
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/Tools.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 5fd2b9b4864..9748da449c3 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -2841,7 +2841,10 @@ void darwin::Compile::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-o");
// NOTE: gcc uses a temp .s file for this, but there doesn't seem
// to be a good reason.
- CmdArgs.push_back("/dev/null");
+ const char *TmpPath = C.getArgs().MakeArgString(
+ D.GetTemporaryPath("s"));
+ C.addTempFile(TmpPath);
+ CmdArgs.push_back(TmpPath);
CmdArgs.push_back("--output-pch=");
CmdArgs.push_back(Output.getFilename());
OpenPOWER on IntegriCloud