14 #ifndef LLVM_OBJECT_ARCHIVE_H 15 #define LLVM_OBJECT_ARCHIVE_H 59 sizeof(ArMemHdr->LastModified)).
rtrim(
' ');
67 return sizeof(ArMemHdrType);
73 char LastModified[12];
81 ArMemHdrType
const *ArMemHdr;
85 virtual void anchor();
106 assert(!Parent || !other.Parent || Parent == other.Parent);
138 uint64_t getChildOffset()
const;
165 return !(*
this == other);
171 assert(E &&
"Can't increment iterator with no Error attached");
173 if (
auto ChildOrErr = C.
getNext())
177 *E = ChildOrErr.takeError();
193 , StringIndex(stri) {}
196 return (Parent == other.Parent) && (SymbolIndex == other.SymbolIndex);
214 return symbol == other.symbol;
218 return !(*
this == other);
245 bool SkipInternal =
true)
const {
246 return make_range(child_begin(Err, SkipInternal), child_end());
252 return make_range(symbol_begin(), symbol_end());
263 bool isEmpty()
const;
264 bool hasSymbolTable()
const;
267 uint32_t getNumberOfSymbols()
const;
270 return std::move(ThinBuffers);
278 uint16_t FirstRegularStartOfFile = -1;
279 void setFirstRegular(
const Child &
C);
283 mutable std::vector<std::unique_ptr<MemoryBuffer>> ThinBuffers;
289 #endif // LLVM_OBJECT_ARCHIVE_H
child_iterator(const Child &C, Error *E)
This class represents lattice values for constants.
const Child * operator->() const
This provides a very simple, boring adaptor for a begin and end iterator into a range type...
Expected< Child > getNext() const
bool operator==(const child_iterator &other) const
bool operator==(const symbol_iterator &other) const
std::vector< std::unique_ptr< MemoryBuffer > > takeThinBuffers()
amdgpu Simplify well known AMD library false Value Value const Twine & Name
StringRef getRawLastModified() const
child_iterator & operator++()
Tagged union holding either a T or a Error.
Symbol(const Archive *p, uint32_t symi, uint32_t stri)
const Child & operator*() const
Expected< sys::TimePoint< std::chrono::seconds > > getLastModified() const
This is an important class for using LLVM in a threaded context.
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
StringRef getStringTable() const
const Symbol & operator*() const
Expected< unsigned > getUID() const
const Symbol * operator->() const
const Archive * getParent() const
Expected< sys::fs::perms > getAccessMode() const
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.
bool operator==(const DataRefImpl &a, const DataRefImpl &b)
A range adaptor for a pair of iterators.
Expected< StringRef > getRawName() const
Helper for Errors used as out-parameters.
bool operator!=(const symbol_iterator &other) const
child_iterator child_end() const
iterator_range< child_iterator > children(Error &Err, bool SkipInternal=true) const
bool operator!=(const child_iterator &other) const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
iterator_range< symbol_iterator > symbols() const
Lightweight error class with error context and mandatory checking.
static bool classof(Binary const *v)
LLVM_NODISCARD StringRef rtrim(char Char) const
Return string with consecutive Char characters starting from the right removed.
StringRef - Represent a constant reference to a string, i.e.
Expected< unsigned > getGID() const
symbol_iterator(const Symbol &s)
StringRef getSymbolTable() const
symbol_iterator & operator++()