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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224108 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Craig Topper 2014-12-12 07:52:16 +00:00
parent b90043f29e
commit b8e1d7998b

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;