Author: Sergey Dmitriev Date: 2020-11-24T08:07:31-08:00 New Revision: 1b0ca81a6c358d2d52d4f84b7f42e620ead1ed26
URL: https://github.com/llvm/llvm-project/commit/1b0ca81a6c358d2d52d4f84b7f42e620ead1ed26 DIFF: https://github.com/llvm/llvm-project/commit/1b0ca81a6c358d2d52d4f84b7f42e620ead1ed26.diff LOG: [clang-offload-bundler] use std::forward_list for storing temp file names [NFC] Use a different container that preserves existing elements on modification for storing temporary file names. Current container can make StringRefs returned earlier invalid on reallocation. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D92010 Added: Modified: clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp Removed: ################################################################################ diff --git a/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp b/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp index 44c46a89a859..a1b2fecb4a80 100644 --- a/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp +++ b/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp @@ -41,6 +41,7 @@ #include <cassert> #include <cstddef> #include <cstdint> +#include <forward_list> #include <memory> #include <string> #include <system_error> @@ -394,7 +395,7 @@ class TempFileHandlerRAII { if (std::error_code EC = sys::fs::createTemporaryFile("clang-offload-bundler", "tmp", File)) return createFileError(File, EC); - Files.push_back(File); + Files.push_front(File); if (Contents) { std::error_code EC; @@ -403,11 +404,11 @@ class TempFileHandlerRAII { return createFileError(File, EC); OS.write(Contents->data(), Contents->size()); } - return Files.back(); + return Files.front(); } private: - SmallVector<SmallString<128u>, 4u> Files; + std::forward_list<SmallString<128u>> Files; }; } // end anonymous namespace _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits