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
#include <cassert>
#include <cstddef>
#include <cstdint>
+#include <forward_list>
#include <memory>
#include <string>
#include <system_error>
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;
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