diff options
Diffstat (limited to 'lld/lib/ReaderWriter/ReaderArchive.cpp')
-rw-r--r-- | lld/lib/ReaderWriter/ReaderArchive.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/ReaderArchive.cpp b/lld/lib/ReaderWriter/ReaderArchive.cpp index 0fe4c2d1930..6dcde18a81c 100644 --- a/lld/lib/ReaderWriter/ReaderArchive.cpp +++ b/lld/lib/ReaderWriter/ReaderArchive.cpp @@ -56,10 +56,21 @@ public: assert(result.size() == 1); + // TO DO: set ordinal of child just loaded + // give up the pointer so that this object no longer manages it return result[0].release(); } + virtual void setOrdinalAndIncrement(uint64_t &ordinal) const { + _ordinal = ordinal++; + // Leave space in ordinal range for all children + for (auto mf = _archive->begin_children(), + me = _archive->end_children(); mf != me; ++mf) { + ordinal++; + } + } + virtual const atom_collection<DefinedAtom> &defined() const { return _definedAtoms; } |