@@ -106,6 +106,7 @@ void Ctx::reset() {
106106 whyExtractRecords.clear ();
107107 backwardReferences.clear ();
108108 auxiliaryFiles.clear ();
109+ tar.reset ();
109110 internalFile = nullptr ;
110111 hasSympart.store (false , std::memory_order_relaxed);
111112 hasTlsIe.store (false , std::memory_order_relaxed);
@@ -138,7 +139,6 @@ bool link(ArrayRef<const char *> args, llvm::raw_ostream &stdoutOS,
138139 outputSections.clear ();
139140 symAux.clear ();
140141
141- tar = nullptr ;
142142 in.reset ();
143143
144144 partitions.clear ();
@@ -224,14 +224,15 @@ std::vector<std::pair<MemoryBufferRef, uint64_t>> static getArchiveMembers(
224224
225225 std::vector<std::pair<MemoryBufferRef, uint64_t >> v;
226226 Error err = Error::success ();
227- bool addToTar = file->isThin () && tar;
227+ bool addToTar = file->isThin () && ctx. tar ;
228228 for (const Archive::Child &c : file->children (err)) {
229229 MemoryBufferRef mbref =
230230 CHECK (c.getMemoryBufferRef (),
231231 mb.getBufferIdentifier () +
232232 " : could not get the buffer for a child of the archive" );
233233 if (addToTar)
234- tar->append (relativeToRoot (check (c.getFullName ())), mbref.getBuffer ());
234+ ctx.tar ->append (relativeToRoot (check (c.getFullName ())),
235+ mbref.getBuffer ());
235236 v.push_back (std::make_pair (mbref, c.getChildOffset ()));
236237 }
237238 if (err)
@@ -640,9 +641,9 @@ void LinkerDriver::linkerMain(ArrayRef<const char *> argsArr) {
640641 Expected<std::unique_ptr<TarWriter>> errOrWriter =
641642 TarWriter::create (path, path::stem (path));
642643 if (errOrWriter) {
643- tar = std::move (*errOrWriter);
644- tar->append (" response.txt" , createResponseFile (args));
645- tar->append (" version.txt" , getLLDVersion () + " \n " );
644+ ctx. tar = std::move (*errOrWriter);
645+ ctx. tar ->append (" response.txt" , createResponseFile (args));
646+ ctx. tar ->append (" version.txt" , getLLDVersion () + " \n " );
646647 StringRef ltoSampleProfile = args.getLastArgValue (OPT_lto_sample_profile);
647648 if (!ltoSampleProfile.empty ())
648649 readFile (ltoSampleProfile);
0 commit comments