Snap for 4613997 from 2c2eccb3796179664ccda7e1f9b981aad0c2e3ef to pi-release

Change-Id: I65a990d67b4d03023d155df930ba740d0f09d136
diff --git a/slang.cpp b/slang.cpp
index 5b6aff7..f942beb 100644
--- a/slang.cpp
+++ b/slang.cpp
@@ -128,7 +128,7 @@
 
 llvm::LLVMContext &getGlobalLLVMContext() { return globalContext; }
 
-static inline llvm::tool_output_file *
+static inline std::unique_ptr<llvm::tool_output_file>
 OpenOutputFile(const char *OutputFile,
                llvm::sys::fs::OpenFlags Flags,
                std::error_code &EC,
@@ -139,10 +139,7 @@
   EC = llvm::sys::fs::create_directories(
       llvm::sys::path::parent_path(OutputFile));
   if (!EC) {
-    llvm::tool_output_file *F =
-          new llvm::tool_output_file(OutputFile, EC, Flags);
-    if (F != nullptr)
-      return F;
+    return llvm::make_unique<llvm::tool_output_file>(OutputFile, EC, Flags);
   }
 
   // Report error here.
@@ -310,7 +307,7 @@
 
 bool Slang::setOutput(const char *OutputFile) {
   std::error_code EC;
-  llvm::tool_output_file *OS = nullptr;
+  std::unique_ptr<llvm::tool_output_file> OS;
 
   switch (mOT) {
     case OT_Dependency:
@@ -335,7 +332,7 @@
   if (EC)
     return false;
 
-  mOS.reset(OS);
+  mOS = std::move(OS);
 
   mOutputFileName = OutputFile;
 
@@ -345,8 +342,7 @@
 bool Slang::setDepOutput(const char *OutputFile) {
   std::error_code EC;
 
-  mDOS.reset(
-      OpenOutputFile(OutputFile, llvm::sys::fs::F_Text, EC, mDiagEngine));
+  mDOS = OpenOutputFile(OutputFile, llvm::sys::fs::F_Text, EC, mDiagEngine);
   if (EC || (mDOS.get() == nullptr))
     return false;