diff options
| author | Christopher Lamb <christopher.lamb@gmail.com> | 2007-12-24 20:59:36 +0000 |
|---|---|---|
| committer | Christopher Lamb <christopher.lamb@gmail.com> | 2007-12-24 20:59:36 +0000 |
| commit | d01dea749e48eb9962a5f58d89f67c4392396ecc (patch) | |
| tree | 2155bed4fe50b2a63161d8b8de7ddc44aaf66f33 /clang/Driver/ASTConsumers.cpp | |
| parent | 1c0f5d2436f0d3c3851bdbfa71ae2286d7da0449 (diff) | |
| download | llvm-d01dea749e48eb9962a5f58d89f67c4392396ecc.zip llvm-d01dea749e48eb9962a5f58d89f67c4392396ecc.tar.gz llvm-d01dea749e48eb9962a5f58d89f67c4392396ecc.tar.bz2 | |
Almost the best possible handling of stdin/stdout for llvm-emit-bc!
llvm-svn: 45346
Diffstat (limited to 'clang/Driver/ASTConsumers.cpp')
| -rw-r--r-- | clang/Driver/ASTConsumers.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/clang/Driver/ASTConsumers.cpp b/clang/Driver/ASTConsumers.cpp index df9d2e4..f3b595f 100644 --- a/clang/Driver/ASTConsumers.cpp +++ b/clang/Driver/ASTConsumers.cpp @@ -644,14 +644,18 @@ ASTConsumer *clang::CreateBCWriter(const std::string& InFile, std::string FileName = OutputFile; std::ostream *Out; - if (OutputFile == "-" || InFile == "-") + if (OutputFile == "-") Out = llvm::cout.stream(); else if (!OutputFile.size()) { - llvm::sys::Path Path(InFile); - Path.eraseSuffix(); - Path.appendSuffix("bc"); - FileName = Path.toString(); - Out = new std::ofstream(FileName.c_str()); + if (InFile == "-") + Out = llvm::cout.stream(); + else { + llvm::sys::Path Path(InFile); + Path.eraseSuffix(); + Path.appendSuffix("bc"); + FileName = Path.toString(); + Out = new std::ofstream(FileName.c_str()); + } } else { Out = new std::ofstream(FileName.c_str()); } |
