diff options
Diffstat (limited to 'COFF/Driver.cpp')
-rw-r--r-- | COFF/Driver.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/COFF/Driver.cpp b/COFF/Driver.cpp index d7af50b9318f..7214d12bde8a 100644 --- a/COFF/Driver.cpp +++ b/COFF/Driver.cpp @@ -184,8 +184,10 @@ void LinkerDriver::addBuffer(std::unique_ptr<MemoryBuffer> mb, if (wholeArchive) { std::unique_ptr<Archive> file = CHECK(Archive::create(mbref), filename + ": failed to parse archive"); + Archive *archive = file.get(); + make<std::unique_ptr<Archive>>(std::move(file)); // take ownership - for (MemoryBufferRef m : getArchiveMembers(file.get())) + for (MemoryBufferRef m : getArchiveMembers(archive)) addArchiveBuffer(m, "<whole-archive>", filename, 0); return; } |