bool Slang::setOutput(const char *OutputFile) { llvm::sys::Path OutputFilePath(OutputFile); std::string Error; llvm::tool_output_file *OS = NULL; switch (mOT) { case OT_Dependency: case OT_Assembly: case OT_LLVMAssembly: { OS = OpenOutputFile(OutputFile, 0, &Error, mDiagEngine); break; } case OT_Nothing: { break; } case OT_Object: case OT_Bitcode: { OS = OpenOutputFile(OutputFile, llvm::raw_fd_ostream::F_Binary, &Error, mDiagEngine); break; } default: { llvm_unreachable("Unknown compiler output type"); } } if (!Error.empty()) return false; mOS.reset(OS); mOutputFileName = OutputFile; return true; }
bool Slang::setDepOutput(const char *OutputFile) { llvm::sys::Path OutputFilePath(OutputFile); std::string Error; mDOS.reset(OpenOutputFile(OutputFile, 0, &Error, mDiagnostics.getPtr())); if (!Error.empty() || (mDOS.get() == NULL)) return false; mDepOutputFileName = OutputFile; return true; }