[clang-offload-bundler] use std::forward_list for storing temp file names [NFC]
authorSergey Dmitriev <serguei.n.dmitriev@intel.com>
Tue, 24 Nov 2020 15:52:46 +0000 (07:52 -0800)
committerSergey Dmitriev <serguei.n.dmitriev@intel.com>
Tue, 24 Nov 2020 16:07:31 +0000 (08:07 -0800)
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

clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp

index 44c46a8..a1b2fec 100644 (file)
@@ -41,6 +41,7 @@
 #include <cassert>
 #include <cstddef>
 #include <cstdint>
+#include <forward_list>
 #include <memory>
 #include <string>
 #include <system_error>
@@ -394,7 +395,7 @@ public:
     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 @@ public:
         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