reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/llvm-objcopy/ELF/Object.h
  467 class Section : public SectionBase {
  484 class OwnedDataSection : public SectionBase {
  512 class CompressedSection : public SectionBase {
  538 class DecompressedSection : public SectionBase {
  563 class StringTableSection : public SectionBase {
  623 class SectionIndexSection : public SectionBase {
  655 class SymbolTableSection : public SectionBase {
  718 class RelocationSectionBase : public SectionBase {
  774 class GroupSection : public SectionBase {
  847 class GnuDebugLinkSection : public SectionBase {

Declarations

tools/llvm-objcopy/ELF/Object.h
   34 class SectionBase;

References

include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/iterator.h
   68     : public std::iterator<IteratorCategoryT, T, DifferenceTypeT, PointerT,
  206     : public iterator_facade_base<DerivedT, IteratorCategoryT, T,
  288           pointee_iterator<WrappedIteratorT, T>, WrappedIteratorT,
  290           T> {
  296   T &operator*() const { return **this->I; }
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
tools/llvm-objcopy/ELF/ELFObjcopy.cpp
   54 using SectionPred = std::function<bool(const SectionBase &Sec)>;
   56 static bool isDebugSection(const SectionBase &Sec) {
   61 static bool isDWOSection(const SectionBase &Sec) {
   65 static bool onlyKeepDWOPred(const Object &Obj, const SectionBase &Sec) {
  100 static void setSectionFlagsAndType(SectionBase &Sec, SectionFlag Flags) {
  286   for (auto &Sec : Obj.sections()) {
  308 static bool isCompressable(const SectionBase &Sec) {
  315     function_ref<bool(const SectionBase &)> shouldReplace,
  316     function_ref<SectionBase *(const SectionBase *)> addSection) {
  316     function_ref<SectionBase *(const SectionBase *)> addSection) {
  320   SmallVector<SectionBase *, 13> ToReplace;
  321   for (auto &Sec : Obj.sections())
  326   DenseMap<SectionBase *, SectionBase *> FromTo;
  326   DenseMap<SectionBase *, SectionBase *> FromTo;
  327   for (SectionBase *S : ToReplace)
  333   for (auto &Sec : Obj.sections())
  401     for (SectionBase &Sec : Obj.sections())
  617     for (SectionBase &Sec : Obj.sections()) {
  632     DenseSet<SectionBase *> PrefixedSections;
  633     for (SectionBase &Sec : Obj.sections()) {
  645         const SectionBase *TargetSec = RelocSec->getSection();
  674     for (SectionBase &Sec : Obj.sections()) {
  682     for (auto &Sec : Obj.sections()) {
  722     SectionBase *Sec = Obj.findSection(SI.SectionName);
tools/llvm-objcopy/ELF/Object.cpp
   55     function_ref<bool(const SectionBase *)> ToRemove) {
   67     const DenseMap<SectionBase *, SectionBase *> &) {}
   67     const DenseMap<SectionBase *, SectionBase *> &) {}
   69 template <class ELFT> void ELFWriter<ELFT>::writeShdr(const SectionBase &Sec) {
  300 static uint64_t sectionPhysicalAddr(const SectionBase *Sec) {
  308 void IHexSectionWriterBase::writeSection(const SectionBase *Sec,
  503 CompressedSection::CompressedSection(const SectionBase &Sec,
  648                                    SectionBase *DefinedIn, uint64_t Value,
  674     function_ref<bool(const SectionBase *)> ToRemove) {
  711     const DenseMap<SectionBase *, SectionBase *> &FromTo) {
  711     const DenseMap<SectionBase *, SectionBase *> &FromTo) {
  713     if (SectionBase *To = FromTo.lookup(Sym->DefinedIn))
  806     function_ref<bool(const SectionBase *)> ToRemove) {
  910     const DenseMap<SectionBase *, SectionBase *> &FromTo) {
  910     const DenseMap<SectionBase *, SectionBase *> &FromTo) {
  912   if (SectionBase *To = FromTo.lookup(SecToApplyRel))
  929     bool AllowBrokenLinks, function_ref<bool(const SectionBase *)> ToRemove) {
  950     function_ref<bool(const SectionBase *)> ToRemove) {
  982     const DenseMap<SectionBase *, SectionBase *> &FromTo) {
  982     const DenseMap<SectionBase *, SectionBase *> &FromTo) {
  983   for (SectionBase *&Sec : GroupMembers)
  984     if (SectionBase *To = FromTo.lookup(Sec))
 1045   for (SectionBase *S : Sec.GroupMembers)
 1058 static bool sectionWithinSegment(const SectionBase &Sec, const Segment &Seg) {
 1143   for (SectionBase &Sec : Obj->sections())
 1258   for (const SectionBase &Sec : Obj.sections()) {
 1289     for (SectionBase &Sec : Obj.sections())
 1366     SectionBase *DefSection = nullptr;
 1426 SectionBase *SectionTableRef::getSection(uint32_t Index, Twine ErrMsg) {
 1441 SectionBase &ELFBuilder<ELFT>::makeSection(const Elf_Shdr &Shdr) {
 1511     auto &Sec = makeSection(Shdr);
 1546     for (auto &Sec : Obj.sections()) {
 1569   for (auto &Sec : Obj.sections()) {
 1773   for (SectionBase &Sec : Obj.sections())
 1778   for (SectionBase &Sec : Obj.sections())
 1795   for (auto &Sec : Obj.removedSections()) {
 1810     std::function<bool(const SectionBase &)> ToRemove) {
 1831   std::unordered_set<const SectionBase *> RemoveSections;
 1932   for (auto &Sec : Sections) {
 2073     for (const SectionBase &Sec : Obj.sections())
 2083   for (SectionBase &Sec : Obj.sections()) {
 2096   for (SectionBase &Sec : Obj.sections())
 2110   for (SectionBase &Sec : Obj.sections()) {
 2125   for (const SectionBase &Sec : Obj.allocSections())
 2136   for (const SectionBase &Sec : Obj.allocSections())
 2166     const SectionBase *Sec = Seg->firstSection();
 2188   for (const SectionBase &Sec : Obj.allocSections())
 2198 bool IHexWriter::SectionCompare::operator()(const SectionBase *Lhs,
 2199                                             const SectionBase *Rhs) const {
 2234   for (const SectionBase *Sec : Sections)
 2246 Error IHexWriter::checkSection(const SectionBase &Sec) {
 2274   for (const SectionBase &Sec : Obj.sections())
 2280   for (const SectionBase &Sec : Obj.sections())
 2288   for (const SectionBase *Sec : Sections)
tools/llvm-objcopy/ELF/Object.h
   51   MutableArrayRef<std::unique_ptr<SectionBase>> Sections;
   54   using iterator = pointee_iterator<std::unique_ptr<SectionBase> *>;
   56   explicit SectionTableRef(MutableArrayRef<std::unique_ptr<SectionBase>> Secs)
   64   SectionBase *getSection(uint32_t Index, Twine ErrMsg);
  281   void writeSection(const SectionBase *Sec, ArrayRef<uint8_t> Data);
  328   void writeShdr(const SectionBase &Sec);
  365     bool operator()(const SectionBase *Lhs, const SectionBase *Rhs) const;
  365     bool operator()(const SectionBase *Lhs, const SectionBase *Rhs) const;
  368   std::set<const SectionBase *, SectionCompare> Sections;
  371   Error checkSection(const SectionBase &Sec);
  404   SectionBase(const SectionBase &) = default;
  413                           function_ref<bool(const SectionBase *)> ToRemove);
  419   replaceSectionReferences(const DenseMap<SectionBase *, SectionBase *> &);
  419   replaceSectionReferences(const DenseMap<SectionBase *, SectionBase *> &);
  425     bool operator()(const SectionBase *Lhs, const SectionBase *Rhs) const {
  425     bool operator()(const SectionBase *Lhs, const SectionBase *Rhs) const {
  435   std::set<const SectionBase *, SectionCompare> Sections;
  455   const SectionBase *firstSection() const {
  461   void removeSection(const SectionBase *Sec) { Sections.erase(Sec); }
  462   void addSection(const SectionBase *Sec) { Sections.insert(Sec); }
  467 class Section : public SectionBase {
  471   SectionBase *LinkSection = nullptr;
  479       function_ref<bool(const SectionBase *)> ToRemove) override;
  484 class OwnedDataSection : public SectionBase {
  512 class CompressedSection : public SectionBase {
  521   CompressedSection(const SectionBase &Sec,
  532   static bool classof(const SectionBase *S) {
  538 class DecompressedSection : public SectionBase {
  563 class StringTableSection : public SectionBase {
  579   static bool classof(const SectionBase *S) {
  608   SectionBase *DefinedIn = nullptr;
  623 class SectionIndexSection : public SectionBase {
  655 class SymbolTableSection : public SectionBase {
  671   void addSymbol(Twine Name, uint8_t Bind, uint8_t Type, SectionBase *DefinedIn,
  682   const SectionBase *getStrTab() const { return SymbolNames; }
  688       function_ref<bool(const SectionBase *)> ToRemove) override;
  695       const DenseMap<SectionBase *, SectionBase *> &FromTo) override;
  695       const DenseMap<SectionBase *, SectionBase *> &FromTo) override;
  697   static bool classof(const SectionBase *S) {
  718 class RelocationSectionBase : public SectionBase {
  720   SectionBase *SecToApplyRel = nullptr;
  723   const SectionBase *getSection() const { return SecToApplyRel; }
  724   void setSection(SectionBase *Sec) { SecToApplyRel = Sec; }
  726   static bool classof(const SectionBase *S) {
  758       function_ref<bool(const SectionBase *)> ToRemove) override;
  762       const DenseMap<SectionBase *, SectionBase *> &FromTo) override;
  762       const DenseMap<SectionBase *, SectionBase *> &FromTo) override;
  764   static bool classof(const SectionBase *S) {
  774 class GroupSection : public SectionBase {
  779   SmallVector<SectionBase *, 3> GroupMembers;
  791   void addMember(SectionBase *Sec) { GroupMembers.push_back(Sec); }
  799       const DenseMap<SectionBase *, SectionBase *> &FromTo) override;
  799       const DenseMap<SectionBase *, SectionBase *> &FromTo) override;
  801   static bool classof(const SectionBase *S) {
  810   static bool classof(const SectionBase *S) {
  819   static bool classof(const SectionBase *S) {
  838       function_ref<bool(const SectionBase *)> ToRemove) override;
  840   static bool classof(const SectionBase *S) {
  847 class GnuDebugLinkSection : public SectionBase {
  931   SectionBase &makeSection(const Elf_Shdr &Shdr);
  986   using SecPtr = std::unique_ptr<SectionBase>;
  993   static bool sectionIsAlloc(const SectionBase &Sec) {
 1032   ConstRange<SectionBase> sections() const {
 1042   SectionBase *findSection(StringRef Name) {
 1053                        std::function<bool(const SectionBase &)> ToRemove);
 1055   template <class T, class... Ts> T &addSection(Ts &&... Args) {
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/bits/std_function.h
  299       _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
  628       using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  123       typedef _Tp        value_type;
usr/include/c++/7.4.0/bits/unique_ptr.h
   68         default_delete(const default_delete<_Up>&) noexcept { }
   72       operator()(_Tp* __ptr) const
   74 	static_assert(!is_void<_Tp>::value,
   76 	static_assert(sizeof(_Tp)>0,
  122 	  using type = _Up*;
  137       using pointer = typename _Ptr<_Tp, _Dp>::type;
  161 	typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type;
  163       __uniq_ptr_impl<_Tp, _Dp> _M_t;
  166       using pointer	  = typename __uniq_ptr_impl<_Tp, _Dp>::pointer;
  167       using element_type  = _Tp;
  252 	unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
  297           __safe_conversion_up<_Up, _Ep>,
  301 	operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
  669     swap(unique_ptr<_Tp, _Dp>& __x,
  670 	 unique_ptr<_Tp, _Dp>& __y) noexcept
  824     make_unique(_Args&&... __args)
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1633     { typedef _Tp   type; };
 1645     { typedef _Tp&   type; };
 1650     : public __add_lvalue_reference_helper<_Tp>
 1659     { typedef _Tp&&   type; };
 1983     { typedef _Up     type; };