[PATCH] D67416: [Clang][Bundler] Fix for a potential memory leak [NFC]
Sergey Dmitriev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 11 09:04:04 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL371633: [Clang][Bundler] Fix for a potential memory leak [NFC] (authored by sdmitriev, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D67416?vs=219601&id=219727#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67416/new/
https://reviews.llvm.org/D67416
Files:
cfe/trunk/tools/clang-offload-bundler/ClangOffloadBundler.cpp
Index: cfe/trunk/tools/clang-offload-bundler/ClangOffloadBundler.cpp
===================================================================
--- cfe/trunk/tools/clang-offload-bundler/ClangOffloadBundler.cpp
+++ cfe/trunk/tools/clang-offload-bundler/ClangOffloadBundler.cpp
@@ -611,24 +611,15 @@
// Check if the input file format is one that we know how to deal with.
Expected<std::unique_ptr<Binary>> BinaryOrErr = createBinary(FirstInput);
- // Failed to open the input as a known binary. Use the default binary handler.
- if (!BinaryOrErr) {
- // We don't really care about the error (we just consume it), if we could
- // not get a valid device binary object we use the default binary handler.
- consumeError(BinaryOrErr.takeError());
- return new BinaryFileHandler();
- }
-
- // We only support regular object files. If this is not an object file,
- // default to the binary handler. The handler will be owned by the client of
- // this function.
- std::unique_ptr<ObjectFile> Obj(
- dyn_cast<ObjectFile>(BinaryOrErr.get().release()));
-
- if (!Obj)
+ // We only support regular object files. If failed to open the input as a
+ // known binary or this is not an object file use the default binary handler.
+ if (errorToBool(BinaryOrErr.takeError()) || !isa<ObjectFile>(*BinaryOrErr))
return new BinaryFileHandler();
- return new ObjectFileHandler(std::move(Obj));
+ // Otherwise create an object file handler. The handler will be owned by the
+ // client of this function.
+ return new ObjectFileHandler(
+ std::unique_ptr<ObjectFile>(cast<ObjectFile>(BinaryOrErr->release())));
}
/// Return an appropriate handler given the input files and options.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67416.219727.patch
Type: text/x-patch
Size: 1706 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190911/67a82832/attachment.bin>
More information about the llvm-commits
mailing list