Use unique_ptr to remove an explicit delete. Change return type to pass the unique_ptr to caller.

llvm-svn: 224108
This commit is contained in:
Craig Topper 2014-12-12 07:52:16 +00:00
parent c5c52f450f
commit 8c8ee4dd24
1 changed files with 4 additions and 5 deletions

View File

@ -204,16 +204,15 @@ static const Target *GetTarget(const char *ProgName) {
return TheTarget;
}
static tool_output_file *GetOutputStream() {
static std::unique_ptr<tool_output_file> GetOutputStream() {
if (OutputFilename == "")
OutputFilename = "-";
std::error_code EC;
tool_output_file *Out =
new tool_output_file(OutputFilename, EC, sys::fs::F_None);
auto Out = llvm::make_unique<tool_output_file>(OutputFilename, EC,
sys::fs::F_None);
if (EC) {
errs() << EC.message() << '\n';
delete Out;
return nullptr;
}
@ -435,7 +434,7 @@ int main(int argc, char **argv) {
FeaturesStr = Features.getString();
}
std::unique_ptr<tool_output_file> Out(GetOutputStream());
std::unique_ptr<tool_output_file> Out = GetOutputStream();
if (!Out)
return 1;