Skip to content

Commit 1b0ca81

Browse files
committed
[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
1 parent c8414fa commit 1b0ca81

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
#include <cassert>
4242
#include <cstddef>
4343
#include <cstdint>
44+
#include <forward_list>
4445
#include <memory>
4546
#include <string>
4647
#include <system_error>
@@ -394,7 +395,7 @@ class TempFileHandlerRAII {
394395
if (std::error_code EC =
395396
sys::fs::createTemporaryFile("clang-offload-bundler", "tmp", File))
396397
return createFileError(File, EC);
397-
Files.push_back(File);
398+
Files.push_front(File);
398399

399400
if (Contents) {
400401
std::error_code EC;
@@ -403,11 +404,11 @@ class TempFileHandlerRAII {
403404
return createFileError(File, EC);
404405
OS.write(Contents->data(), Contents->size());
405406
}
406-
return Files.back();
407+
return Files.front();
407408
}
408409

409410
private:
410-
SmallVector<SmallString<128u>, 4u> Files;
411+
std::forward_list<SmallString<128u>> Files;
411412
};
412413

413414
} // end anonymous namespace

0 commit comments

Comments
 (0)