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

Derived Classes

include/llvm/Object/ELFObjectFile.h
   98 class ELFSectionRef : public SectionRef {

Declarations

include/llvm/Object/ObjectFile.h
   43 class SectionRef;
include/llvm/ProfileData/InstrProf.h
  391 class SectionRef;
tools/llvm-pdbutil/InputFile.h
   29 class SectionRef;

References

include/llvm/ADT/DenseMap.h
   40 struct DenseMapPair : public std::pair<KeyT, ValueT> {
   43   KeyT &getFirst() { return std::pair<KeyT, ValueT>::first; }
   44   const KeyT &getFirst() const { return std::pair<KeyT, ValueT>::first; }
   65   using key_type = KeyT;
   69   using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
   71       DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
  145   size_type count(const_arg_type_t<KeyT> Val) const {
  156   const_iterator find(const_arg_type_t<KeyT> Val) const {
  185   ValueT lookup(const_arg_type_t<KeyT> Val) const {
  272   bool erase(const KeyT &Val) {
  291   value_type& FindAndConstruct(const KeyT &Key) {
  299   ValueT &operator[](const KeyT &Key) {
  303   value_type& FindAndConstruct(KeyT &&Key) {
  311   ValueT &operator[](KeyT &&Key) {
  334     const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
  349     const KeyT EmptyKey = getEmptyKey();
  351       ::new (&B->getFirst()) KeyT(EmptyKey);
  369     const KeyT EmptyKey = getEmptyKey();
  370     const KeyT TombstoneKey = getTombstoneKey();
  392       const DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT> &other) {
  414   static unsigned getHashValue(const KeyT &Val) {
  419   static unsigned getHashValue(const LookupKeyT &Val) {
  423   static const KeyT getEmptyKey() {
  429   static const KeyT getTombstoneKey() {
  437     if (shouldReverseIterate<KeyT>()) {
  447     if (shouldReverseIterate<KeyT>()) {
  515   BucketT *InsertIntoBucket(BucketT *TheBucket, KeyArg &&Key,
  525   BucketT *InsertIntoBucketWithLookup(BucketT *TheBucket, KeyT &&Key,
  535   BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
  535   BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
  566     const KeyT EmptyKey = getEmptyKey();
  578   bool LookupBucketFor(const LookupKeyT &Val,
  590     const KeyT EmptyKey = getEmptyKey();
  591     const KeyT TombstoneKey = getTombstoneKey();
  629   bool LookupBucketFor(const LookupKeyT &Val, BucketT *&FoundBucket) {
  684 class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
  685                                      KeyT, ValueT, KeyInfoT, BucketT> {
  690   using BaseT = DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
 1163   using ConstIterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, true>;
 1186     if (shouldReverseIterate<KeyT>()) {
 1199       const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConstSrc> &I)
 1210     if (shouldReverseIterate<KeyT>())
 1249     const KeyT Empty = KeyInfoT::getEmptyKey();
 1250     const KeyT Tombstone = KeyInfoT::getTombstoneKey();
 1259     const KeyT Empty = KeyInfoT::getEmptyKey();
 1260     const KeyT Tombstone = KeyInfoT::getTombstoneKey();
include/llvm/ADT/MapVector.h
   83   std::pair<KeyT, ValueT>       &front()       { return Vector.front(); }
   83   std::pair<KeyT, ValueT>       &front()       { return Vector.front(); }
   84   const std::pair<KeyT, ValueT> &front() const { return Vector.front(); }
   84   const std::pair<KeyT, ValueT> &front() const { return Vector.front(); }
   85   std::pair<KeyT, ValueT>       &back()        { return Vector.back(); }
   85   std::pair<KeyT, ValueT>       &back()        { return Vector.back(); }
   86   const std::pair<KeyT, ValueT> &back()  const { return Vector.back(); }
   86   const std::pair<KeyT, ValueT> &back()  const { return Vector.back(); }
   98   ValueT &operator[](const KeyT &Key) {
   98   ValueT &operator[](const KeyT &Key) {
   99     std::pair<KeyT, typename MapType::mapped_type> Pair = std::make_pair(Key, 0);
  110   ValueT lookup(const KeyT &Key) const {
  110   ValueT lookup(const KeyT &Key) const {
  117   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
  117   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
  129   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
  129   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
  142   size_type count(const KeyT &Key) const {
  147   iterator find(const KeyT &Key) {
  153   const_iterator find(const KeyT &Key) const {
  192   size_type erase(const KeyT &Key) {
include/llvm/ADT/Optional.h
  144     T value;
  160   explicit OptionalStorage(in_place_t, Args &&... args)
  172   T &getValue() LLVM_LVALUE_FUNCTION noexcept {
  176   T const &getValue() const LLVM_LVALUE_FUNCTION noexcept {
  181   T &&getValue() && noexcept {
  197       ::new ((void *)std::addressof(value)) T(y);
  216   optional_detail::OptionalStorage<T> Storage;
  219   using value_type = T;
  224   Optional(const T &y) : Storage(optional_detail::in_place_t{}, y) {}
  227   Optional(T &&y) : Storage(optional_detail::in_place_t{}, std::move(y)) {}
  230   Optional &operator=(T &&y) {
  241   static inline Optional create(const T *y) {
  245   Optional &operator=(const T &y) {
  253   const T *getPointer() const { return &Storage.getValue(); }
  254   T *getPointer() { return &Storage.getValue(); }
  255   const T &getValue() const LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
  256   T &getValue() LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
  260   const T *operator->() const { return getPointer(); }
  261   T *operator->() { return getPointer(); }
  262   const T &operator*() const LLVM_LVALUE_FUNCTION { return getValue(); }
  263   T &operator*() LLVM_LVALUE_FUNCTION { return getValue(); }
  266   constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
  271   T &&getValue() && { return std::move(Storage.getValue()); }
  272   T &&operator*() && { return std::move(Storage.getValue()); }
  275   T getValueOr(U &&value) && {
include/llvm/ADT/SmallVector.h
   75   AlignedCharArrayUnion<T> FirstEl;
  114   using value_type = T;
  115   using iterator = T *;
  116   using const_iterator = const T *;
  121   using reference = T &;
  122   using const_reference = const T &;
  123   using pointer = T *;
  124   using const_pointer = const T *;
  259 class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
  264   static void destroy_range(T *, T *) {}
  264   static void destroy_range(T *, T *) {}
  299   void grow(size_t MinSize = 0) { this->grow_pod(MinSize, sizeof(T)); }
  302   void push_back(const T &Elt) {
  305     memcpy(reinterpret_cast<void *>(this->end()), &Elt, sizeof(T));
  315 class SmallVectorImpl : public SmallVectorTemplateBase<T> {
  316   using SuperClass = SmallVectorTemplateBase<T>;
  357   void resize(size_type N, const T &NV) {
  374   LLVM_NODISCARD T pop_back_val() {
  397   void append(size_type NumInputs, const T &Elt) {
  405   void append(std::initializer_list<T> IL) {
  412   void assign(size_type NumElts, const T &Elt) {
  429   void assign(std::initializer_list<T> IL) {
  467   iterator insert(iterator I, T &&Elt) {
  497   iterator insert(iterator I, const T &Elt) {
  526   iterator insert(iterator I, size_type NumToInsert, const T &Elt) {
  637   void insert(iterator I, std::initializer_list<T> IL) {
  820   AlignedCharArrayUnion<T> InlineElts[N];
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  846   explicit SmallVector(size_t Size, const T &Value = T())
  865   SmallVector(std::initializer_list<T> IL) : SmallVectorImpl<T>(N) {
  884   SmallVector(SmallVectorImpl<T> &&RHS) : SmallVectorImpl<T>(N) {
include/llvm/DebugInfo/DIContext.h
  258   virtual uint64_t getSectionLoadAddress(const object::SectionRef &Sec) const {
  273   virtual bool getLoadedSectionContents(const object::SectionRef &Sec,
include/llvm/ExecutionEngine/RuntimeDyld.h
   74     using ObjSectionToIDMap = std::map<object::SectionRef, unsigned>;
   83     getSectionLoadAddress(const object::SectionRef &Sec) const override;
include/llvm/Object/COFF.h
  933   const coff_section *getCOFFSection(const SectionRef &Section) const;
  937   unsigned getSectionID(SectionRef Sec) const;
 1211   Error load(const COFFObjectFile *O, const SectionRef &S);
 1228   SectionRef Section;
include/llvm/Object/Decompressor.h
   45   static bool isCompressed(const object::SectionRef &Section);
include/llvm/Object/ELFObjectFile.h
   98 class ELFSectionRef : public SectionRef {
  100   ELFSectionRef(const SectionRef &B) : SectionRef(B) {
  242   SectionRef toSectionRef(const Elf_Shdr *Sec) const {
  243     return SectionRef(toDRI(Sec), this);
  290   std::vector<SectionRef> dynamic_relocation_sections() const override;
  676   return section_iterator(SectionRef(Sec, this));
  765 std::vector<SectionRef>
  767   std::vector<SectionRef> Res;
  858   return section_iterator(SectionRef(toDRI(*SecOrErr), this));
 1037   return section_iterator(SectionRef(toDRI((*SectionsOrErr).begin()), this));
 1045   return section_iterator(SectionRef(toDRI((*SectionsOrErr).end()), this));
include/llvm/Object/MachO.h
  284   unsigned getSectionType(SectionRef Sec) const;
  293   unsigned getSectionID(SectionRef Sec) const;
  304   Expected<SectionRef> getSection(unsigned SectionIndex) const;
  305   Expected<SectionRef> getSection(StringRef SectionName) const;
  484   SectionRef getAnyRelocationSection(const MachO::any_relocation_info &RE) const;
include/llvm/Object/ObjectFile.h
   48 using section_iterator = content_iterator<SectionRef>;
   91   bool operator==(const SectionRef &Other) const;
   92   bool operator!=(const SectionRef &Other) const;
   93   bool operator<(const SectionRef &Other) const;
  297   virtual std::vector<SectionRef> dynamic_relocation_sections() const {
  414 inline bool SectionRef::operator==(const SectionRef &Other) const {
  419 inline bool SectionRef::operator!=(const SectionRef &Other) const {
  423 inline bool SectionRef::operator<(const SectionRef &Other) const {
  557   static bool isEqual(const object::SectionRef &A,
  558                       const object::SectionRef &B) {
  561   static object::SectionRef getEmptyKey() {
  564   static object::SectionRef getTombstoneKey() {
  569   static unsigned getHashValue(const object::SectionRef &Sec) {
include/llvm/Object/SymbolicFile.h
   70     : public std::iterator<std::forward_iterator_tag, content_type> {
   71   content_type Current;
   74   content_iterator(content_type symb) : Current(std::move(symb)) {}
   76   const content_type *operator->() const { return &Current; }
   78   const content_type &operator*() const { return Current; }
include/llvm/Object/Wasm.h
  126   const WasmSection &getWasmSection(const SectionRef &Section) const;
include/llvm/ProfileData/InstrProf.h
  444   Error create(object::SectionRef &Section);
  530 Error InstrProfSymtab::create(const NameIterRange &IterRange) {
include/llvm/Support/AlignOf.h
   30   T t;
   39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
   50       llvm::detail::SizerImpl<T, Ts...>)];
include/llvm/Support/Error.h
  437   static const bool isRef = std::is_reference<T>::value;
  439   using wrap = std::reference_wrapper<typename std::remove_reference<T>::type>;
  444   using storage_type = typename std::conditional<isRef, wrap, T>::type;
  445   using value_type = T;
  448   using reference = typename std::remove_reference<T>::type &;
  449   using const_reference = const typename std::remove_reference<T>::type &;
  450   using pointer = typename std::remove_reference<T>::type *;
  451   using const_pointer = const typename std::remove_reference<T>::type *;
  474   Expected(OtherT &&Val,
  475            typename std::enable_if<std::is_convertible<OtherT, T>::value>::type
  475            typename std::enable_if<std::is_convertible<OtherT, T>::value>::type
  483     new (getStorage()) storage_type(std::forward<OtherT>(Val));
  492   Expected(Expected<OtherT> &&Other,
  493            typename std::enable_if<std::is_convertible<OtherT, T>::value>::type
  493            typename std::enable_if<std::is_convertible<OtherT, T>::value>::type
  594   template <class OtherT> void moveConstruct(Expected<OtherT> &&Other) {
include/llvm/Support/ErrorOr.h
   59   static const bool isRef = std::is_reference<T>::value;
   61   using wrap = std::reference_wrapper<typename std::remove_reference<T>::type>;
   64   using storage_type = typename std::conditional<isRef, wrap, T>::type;
   67   using reference = typename std::remove_reference<T>::type &;
   68   using const_reference = const typename std::remove_reference<T>::type &;
   69   using pointer = typename std::remove_reference<T>::type *;
   70   using const_pointer = const typename std::remove_reference<T>::type *;
   87   ErrorOr(OtherT &&Val,
   88           typename std::enable_if<std::is_convertible<OtherT, T>::value>::type
  100       const ErrorOr<OtherT> &Other,
  101       typename std::enable_if<std::is_convertible<OtherT, T>::value>::type * =
  101       typename std::enable_if<std::is_convertible<OtherT, T>::value>::type * =
  120       ErrorOr<OtherT> &&Other,
  121       typename std::enable_if<std::is_convertible<OtherT, T>::value>::type * =
  121       typename std::enable_if<std::is_convertible<OtherT, T>::value>::type * =
  209   void moveConstruct(ErrorOr<OtherT> &&Other) {
include/llvm/Support/type_traits.h
   65   using type = const T &;
   91     T t;
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  145       std::is_copy_constructible<detail::trivial_helper<T>>::value;
  147       !std::is_copy_constructible<T>::value;
  151       std::is_move_constructible<detail::trivial_helper<T>>::value;
  153       !std::is_move_constructible<T>::value;
  157       is_copy_assignable<detail::trivial_helper<T>>::value;
  159       !is_copy_assignable<T>::value;
  163       is_move_assignable<detail::trivial_helper<T>>::value;
  165       !is_move_assignable<T>::value;
  169       std::is_destructible<detail::trivial_helper<T>>::value;
lib/DebugInfo/DWARF/DWARFContext.cpp
 1370   using InfoSectionMap = MapVector<object::SectionRef, DWARFSectionMap,
 1371                                    std::map<object::SectionRef, unsigned>>;
 1465   Error maybeDecompress(const object::SectionRef &Sec, StringRef Name,
 1511     for (const SectionRef &Section : Obj.sections()) {
lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
  321   for (SectionRef Sec : Module->sections()) {
lib/DebugInfo/Symbolize/Symbolize.cpp
  247   for (const SectionRef &Section : Obj->sections()) {
lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
  170 static Error getOffset(const SymbolRef &Sym, SectionRef Sec,
  458 static bool isRequiredForExecution(const SectionRef Section) {
  481 static bool isReadOnlyData(const SectionRef Section) {
  499 static bool isZeroInit(const SectionRef Section) {
  531     const SectionRef &Section = *SI;
  644                                                     const SectionRef &Section) {
  773                              const SectionRef &Section,
  891                                    const SectionRef &Section,
 1243                                           const object::SectionRef &Sec) const {
lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
   75   void updateSectionAddress(const SectionRef &Sec, uint64_t Addr);
  112 void DyldELFObject<ELFT>::updateSectionAddress(const SectionRef &Sec,
  162   for (const auto &Sec : Obj->sections()) {
 1897     const SectionRef &Section = i->first;
lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
  262   typedef std::map<SectionRef, unsigned> ObjSectionToIDMap;
  387                                  const SectionRef &Section,
  396                                        const SectionRef &Section, bool IsCode,
  445                                      const SectionRef &Section);
lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
   77   SectionRef TargetSection = *TargetSI;
  126     SectionRef Sec = Obj.getAnyRelocationSection(RelInfo);
  182                                                     const SectionRef &PTSection,
  234   for (const auto &Section : Obj.sections()) {
lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
  118                                               const SectionRef &PTSection,
lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h
  286       const object::SectionRef &Section = SectionPair.first;
lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h
  437                        const SectionRef &Section) {
lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h
  290                        const SectionRef &Section) {
  383     SectionRef SectionA = *SAI;
  397     SectionRef SectionB = *SBI;
lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h
  129                        const SectionRef &Section) {
  172     SectionRef SectionA = *SAI;
  186     SectionRef SectionB = *SBI;
  213                           const SectionRef &JTSection,
lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h
  124                         const SectionRef &Section) {
  189       SectionRef SecB = Obj.getAnyRelocationSection(RelInfo);
  215       SectionRef SecA = Obj.getAnyRelocationSection(RelInfo);
lib/Object/COFFObjectFile.cpp
  331 unsigned COFFObjectFile::getSectionID(SectionRef Sec) const {
  458   for (const SectionRef &S : sections()) {
  474   for (const SectionRef &S : sections()) {
  974   for (const SectionRef &Section : sections()) {
 1150 COFFObjectFile::getCOFFSection(const SectionRef &Section) const {
 1749   for (const SectionRef &S : O->sections()) {
 1761 Error ResourceSectionRef::load(const COFFObjectFile *O, const SectionRef &S) {
 1850     for (const SectionRef &S : Obj->sections()) {
lib/Object/Decompressor.cpp
   79 bool Decompressor::isCompressed(const object::SectionRef &Section) {
lib/Object/ELFObjectFile.cpp
  408   Optional<SectionRef> Plt = None, RelaPlt = None, GotPlt = None;
  409   for (const SectionRef &Section : sections()) {
lib/Object/IRObjectFile.cpp
   75   for (const SectionRef &Sec : Obj.sections()) {
lib/Object/MachOObjectFile.cpp
 1763 unsigned MachOObjectFile::getSectionType(SectionRef Sec) const {
 1984 Expected<SectionRef> MachOObjectFile::getSection(unsigned SectionIndex) const {
 1993 Expected<SectionRef> MachOObjectFile::getSection(StringRef SectionName) const {
 1994   for (const SectionRef &Section : sections()) {
 2029 unsigned MachOObjectFile::getSectionID(SectionRef Sec) const {
 4000   for (const SectionRef &Section : Obj->sections()) {
 4235 SectionRef
lib/Object/SymbolSize.cpp
   27 static unsigned getSectionID(const ObjectFile &O, SectionRef Sec) {
   62   for (SectionRef Sec : O.sections()) {
lib/Object/WasmObjectFile.cpp
 1545 WasmObjectFile::getWasmSection(const SectionRef &Section) const {
lib/ProfileData/Coverage/CoverageMappingReader.cpp
  350 Error InstrProfSymtab::create(SectionRef &Section) {
  659 static Expected<SectionRef> lookupSection(ObjectFile &OF, StringRef Name) {
  669   for (const auto &Section : OF.sections()) {
lib/XRay/InstrumentationMap.cpp
  102     for (const object::SectionRef &Section : Sections) {
tools/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
  381   static Expected<Optional<StringRef>> IsOffloadSection(SectionRef CurSection) {
tools/dsymutil/DwarfLinker.cpp
  437     const object::SectionRef &Section, const object::MachOObjectFile &Obj,
  511     const object::SectionRef &Section, const object::ObjectFile &Obj,
  539   for (const object::SectionRef &Section : Obj.sections()) {
tools/dsymutil/DwarfLinker.h
  126     bool findValidRelocs(const object::SectionRef &Section,
  130     void findValidRelocsMachO(const object::SectionRef &Section,
tools/dsymutil/DwarfStreamer.cpp
   30 static Optional<object::SectionRef>
   32   for (const object::SectionRef &Section : Obj.sections()) {
tools/lld/COFF/Chunks.cpp
  640   SectionRef s(r, file->getCOFFObj());
tools/lld/wasm/InputFiles.cpp
  287   for (const SectionRef &sec : wasmObj->sections()) {
tools/llvm-cfi-verify/lib/FileAnalysis.cpp
  448   for (const object::SectionRef &Section : Object->sections()) {
tools/llvm-cov/TestingSupport.cpp
   50   SectionRef ProfileNames, CoverageMapping;
   52   for (const auto &Section : OF->sections()) {
tools/llvm-cxxdump/llvm-cxxdump.cpp
   79 static std::map<SectionRef, SmallVector<SectionRef, 1>> SectionRelocMap;
   79 static std::map<SectionRef, SmallVector<SectionRef, 1>> SectionRelocMap;
   82                                     const SectionRef &Sec, uint64_t SecAddress,
   87   for (const SectionRef &SR : SectionRelocMap[Sec]) {
  106     const ObjectFile *Obj, const SectionRef &Sec, uint64_t SecAddress,
  111   for (const SectionRef &SR : SectionRelocMap[Sec]) {
  176   for (const SectionRef &Section : Obj->sections()) {
  203     const SectionRef &Sec = *SecI;
tools/llvm-dwp/llvm-dwp.cpp
  396     const MCSection *TUIndexSection, const SectionRef &Section, MCStreamer &Out,
  553     for (const auto &Section : Obj.sections())
tools/llvm-nm/llvm-nm.cpp
  299   SectionRef Section;
 1362             for (const SectionRef &Section : MachO->sections()) {
 1688           for (const SectionRef &Section : MachO->sections()) {
tools/llvm-objcopy/MachO/MachOReader.cpp
   86     Expected<object::SectionRef> SecRef =
tools/llvm-objdump/COFFDump.cpp
  450   for (const SectionRef &Section : Obj->sections()) {
tools/llvm-objdump/MachODump.cpp
  364                                   std::vector<SectionRef> &Sections,
  375   for (const SectionRef &Section : MachOObj->sections())
  449     for (const SectionRef &Section : ToolSectionFilter(*O)) {
 1446                                       const SectionRef &Section,
 1451   std::vector<SectionRef> LiteralSections;
 1452   for (const SectionRef &Section : O->sections()) {
 1614                                        const SectionRef &Section,
 1749     for (const SectionRef &Section : O->sections()) {
 1850   for (const SectionRef &Section : O->sections()) {
 1952     for (const SectionRef &Section : MachOOF->sections()) {
 2568                   std::vector<SectionRef> *Sections, bool verbose)
 2572   SectionRef S;
 2574   std::vector<SectionRef> *Sections;
 3278                                   uint32_t &left, SectionRef &S,
 3316                                   uint32_t &left, SectionRef &S,
 3327 static const char *get_symbol_64(uint32_t sect_offset, SectionRef S,
 3385 static const char *get_symbol_32(uint32_t sect_offset, SectionRef S,
 3990   SectionRef S;
 4040   SectionRef S;
 4073   SectionRef S;
 4085 static const SectionRef get_section(MachOObjectFile *O, const char *segname,
 4087   for (const SectionRef &Section : O->sections()) {
 4104 walk_pointer_list_64(const char *listname, const SectionRef S,
 4159 walk_pointer_list_32(const char *listname, const SectionRef S,
 4212   SectionRef S;
 4223   SectionRef S;
 4238   SectionRef S, xS;
 4331   SectionRef S, xS;
 4388   SectionRef S;
 4464   SectionRef S, xS;
 4593   SectionRef S, xS;
 4679   SectionRef S;
 4749   SectionRef S;
 4809   SectionRef S;
 4858   SectionRef S, xS;
 4959   SectionRef S, xS;
 5028   SectionRef S, xS;
 5107   SectionRef S, xS;
 5161   SectionRef S, xS;
 5295   SectionRef S, xS;
 5358   SectionRef S;
 5439   SectionRef S;
 5505   SectionRef S;
 5624   SectionRef S;
 5665   SectionRef S, xS;
 5785   SectionRef S, xS;
 5827 static void print_message_refs64(SectionRef S, struct DisassembleInfo *info) {
 5833   SectionRef xS;
 5897 static void print_message_refs32(SectionRef S, struct DisassembleInfo *info) {
 5901   SectionRef xS;
 5948 static void print_image_info64(SectionRef S, struct DisassembleInfo *info) {
 6011 static void print_image_info32(SectionRef S, struct DisassembleInfo *info) {
 6069 static void print_image_info(SectionRef S, struct DisassembleInfo *info) {
 6114   std::vector<SectionRef> Sections;
 6115   for (const SectionRef &Section : O->sections())
 6120   SectionRef CL = get_section(O, "__OBJC2", "__class_list");
 6130   SectionRef CR = get_section(O, "__OBJC2", "__class_refs");
 6140   SectionRef SR = get_section(O, "__OBJC2", "__super_refs");
 6150   SectionRef CA = get_section(O, "__OBJC2", "__category_list");
 6160   SectionRef PL = get_section(O, "__OBJC2", "__protocol_list");
 6170   SectionRef MR = get_section(O, "__OBJC2", "__message_refs");
 6180   SectionRef II = get_section(O, "__OBJC2", "__image_info");
 6196   std::vector<SectionRef> Sections;
 6197   for (const SectionRef &Section : O->sections())
 6202   SectionRef CL = get_section(O, "__OBJC2", "__class_list");
 6212   SectionRef CR = get_section(O, "__OBJC2", "__class_refs");
 6222   SectionRef SR = get_section(O, "__OBJC2", "__super_refs");
 6232   SectionRef CA = get_section(O, "__OBJC2", "__category_list");
 6242   SectionRef PL = get_section(O, "__OBJC2", "__protocol_list");
 6252   SectionRef MR = get_section(O, "__OBJC2", "__message_refs");
 6262   SectionRef II = get_section(O, "__OBJC2", "__image_info");
 6277   SectionRef S, xS;
 6291   std::vector<SectionRef> Sections;
 6292   for (const SectionRef &Section : O->sections())
 6437   const SectionRef II = get_section(O, "__OBJC", "__image_info");
 6449   std::vector<SectionRef> Sections;
 6450   for (const SectionRef &Section : O->sections())
 7303   std::vector<SectionRef> Sections;
 7825   SectionRef RelocSection = Obj->getAnyRelocationSection(RE);
 7883                                const SectionRef &CompactUnwind) {
 8027                                         const SectionRef &UnwindInfo) {
 8223   for (const SectionRef &Section : Obj->sections()) {
tools/llvm-objdump/llvm-objdump.cpp
  359 static FilterResult checkSectionFilter(object::SectionRef S) {
  905                      std::map<SectionRef, SectionSymbolsTy> &AllSymbols) {
  932                      std::map<SectionRef, SectionSymbolsTy> &AllSymbols) {
  947                           std::map<SectionRef, SectionSymbolsTy> &AllSymbols,
  949   Optional<SectionRef> Plt = None;
  950   for (const SectionRef &Section : Obj->sections()) {
  994 static std::map<SectionRef, std::vector<RelocationRef>>
  996   std::map<SectionRef, std::vector<RelocationRef>> Ret;
  998   for (SectionRef Sec : Obj.sections()) {
 1024 static bool shouldAdjustVA(const SectionRef &Section) {
 1127   std::map<SectionRef, std::vector<RelocationRef>> RelocMap;
 1134   std::map<SectionRef, SectionSymbolsTy> AllSymbols;
 1165   std::vector<std::pair<uint64_t, SectionRef>> SectionAddresses;
 1166   for (SectionRef Sec : Obj->sections())
 1200   for (std::pair<const SectionRef, SectionSymbolsTy> &SecSyms : AllSymbols)
 1204   for (const SectionRef &Section : ToolSectionFilter(*Obj)) {
 1619   MapVector<SectionRef, std::vector<SectionRef>> SecToRelSec;
 1619   MapVector<SectionRef, std::vector<SectionRef>> SecToRelSec;
 1621   for (const SectionRef &Section : ToolSectionFilter(*Obj, &Ndx)) {
 1633   for (std::pair<SectionRef, std::vector<SectionRef>> &P : SecToRelSec) {
 1633   for (std::pair<SectionRef, std::vector<SectionRef>> &P : SecToRelSec) {
 1637     for (SectionRef Section : P.second) {
 1667   std::vector<SectionRef> DynRelSec = Obj->dynamic_relocation_sections();
 1673   for (const SectionRef &Section : DynRelSec)
 1692   for (const SectionRef &S : ToolSectionFilter(*Obj))
 1701   for (const SectionRef &Section : ToolSectionFilter(*Obj)) {
 1725   for (const SectionRef &Section : ToolSectionFilter(*Obj, &Idx)) {
 1754   for (const SectionRef &Section : ToolSectionFilter(*Obj)) {
 1945   Optional<object::SectionRef> ClangASTSection;
 1946   for (auto Sec : ToolSectionFilter(*Obj)) {
 1980   Optional<object::SectionRef> FaultMapSection;
 1982   for (auto Sec : ToolSectionFilter(*Obj)) {
 2105   for (const SectionRef &Section : Obj->sections())
tools/llvm-objdump/llvm-objdump.h
   32 typedef std::function<bool(llvm::object::SectionRef const &)> FilterPredicate;
   44   const llvm::object::SectionRef &operator*() const { return *Iterator; }
tools/llvm-pdbutil/DumpOutputStyle.cpp
 1371   for (const auto &S : getObj().sections()) {
tools/llvm-pdbutil/InputFile.cpp
   66 static inline bool isCodeViewDebugSubsection(object::SectionRef Section,
   93 static inline bool isDebugSSection(object::SectionRef Section,
  103 static bool isDebugTSection(SectionRef Section, CVTypeArray &Types) {
  139     for (const auto &S : File->obj().sections()) {
  344   for (const auto &Section : obj().sections()) {
  396   for (const auto &Section : obj().sections()) {
  488     SectionRef SR = *Iter;
tools/llvm-readobj/ARMWinEHPrinter.cpp
  211 ErrorOr<object::SectionRef>
  213   for (const auto &Section : COFF.sections()) {
  242                                                const SectionRef &Section,
  811                               const SectionRef &Section,
  921                                 const SectionRef Section, uint64_t Offset,
 1003     ErrorOr<SectionRef> Section = getSectionContaining(COFF, Address);
 1012                               const SectionRef Section, uint64_t Offset,
 1063                                      const SectionRef Section, unsigned Index,
 1081                                 const SectionRef Section) {
 1097   for (const auto &Section : COFF.sections()) {
tools/llvm-readobj/ARMWinEHPrinter.h
  129   ErrorOr<object::SectionRef>
  138                      const object::SectionRef &Section, uint64_t Offset);
  141                        const object::SectionRef &Section,
  144                          const object::SectionRef Section, uint64_t Offset,
  147                        const object::SectionRef Section, uint64_t Offset,
  150                               const object::SectionRef Section, unsigned Entry,
  153                          const object::SectionRef Section);
tools/llvm-readobj/COFFDumper.cpp
  111   void printRelocation(const SectionRef &Section, const RelocationRef &Reloc,
  125   void printCodeViewSymbolSection(StringRef SectionName, const SectionRef &Section);
  126   void printCodeViewTypeSection(StringRef SectionName, const SectionRef &Section);
  136                                       const SectionRef &Section,
  155   void printBinaryBlockWithRelocs(StringRef Label, const SectionRef &Sec,
  196   COFFObjectDumpDelegate(COFFDumper &CD, const SectionRef &SR,
  234   const SectionRef &SR;
  318                                             const SectionRef &Sec,
  589   for (const SectionRef &S : Obj->sections()) {
  892   for (const SectionRef &S : Obj->sections()) {
  899   for (const SectionRef &S : Obj->sections()) {
  943                                             const SectionRef &Section) {
 1161                                                 const SectionRef &Section,
 1252   for (const SectionRef &S : Obj->sections()) {
 1291                                           const SectionRef &Section) {
 1320   for (const SectionRef &Sec : Obj->sections()) {
 1369   for (const SectionRef &Section : Obj->sections()) {
 1391 void COFFDumper::printRelocation(const SectionRef &Section,
 1720   for (const SectionRef &Section : Obj->sections()) {
 1761   for (const SectionRef &S : Obj->sections()) {
 1885   object::SectionRef StackMapSection;
 1886   for (auto Sec : Obj->sections()) {
 1916   object::SectionRef AddrsigSection;
 1917   for (auto Sec : Obj->sections()) {
tools/llvm-readobj/ELFDumper.cpp
  422                               SectionRef FunctionSec,
  426                       SectionRef FunctionSec,
 4697 static StringRef getSectionName(const SectionRef &Sec) {
 4717     const ELFObjectFile<ELFT> *Obj, uint64_t SymValue, SectionRef FunctionSec,
 4773                                      SectionRef FunctionSec,
 4832   for (const SectionRef &Sec : Obj->sections()) {
 4872   llvm::MapVector<SectionRef, SectionRef> StackSizeRelocMap;
 4872   llvm::MapVector<SectionRef, SectionRef> StackSizeRelocMap;
 4873   const SectionRef NullSection{};
 4875   for (const SectionRef &Sec : Obj->sections()) {
 4921     const SectionRef &StackSizesSec = StackSizeMapEntry.first;
 4922     const SectionRef &RelocSec = StackSizeMapEntry.second;
 4939     const SectionRef FunctionSec = Obj->toSectionRef(unwrapOrError(
tools/llvm-readobj/MachODumper.cpp
  462   for (const SectionRef &Section : Obj->sections()) {
  518   for (const SectionRef &Section : Obj->sections()) {
  665   object::SectionRef StackMapSection;
  666   for (auto Sec : Obj->sections()) {
tools/llvm-readobj/ObjDumper.cpp
   40 static std::vector<object::SectionRef>
   43   std::vector<object::SectionRef> Ret;
   55   for (object::SectionRef SecRef : Obj->sections()) {
   86   for (object::SectionRef Section :
  121   for (object::SectionRef Section :
tools/llvm-readobj/WasmDumper.cpp
   71   void printRelocation(const SectionRef &Section, const RelocationRef &Reloc);
   84 void WasmDumper::printRelocation(const SectionRef &Section,
  135   for (const SectionRef &Section : Obj->sections()) {
  167   for (const SectionRef &Section : Obj->sections()) {
tools/llvm-readobj/Win64EHDumper.cpp
  307   for (const auto &Section : Ctx.COFF.sections()) {
tools/llvm-size/llvm-size.cpp
  184 static bool considerForSize(ObjectFile *Obj, SectionRef Section) {
  382     for (const SectionRef &Section : Obj->sections()) {
  422     for (const SectionRef &Section : Obj->sections()) {
  458     for (const SectionRef &Section : Obj->sections()) {
tools/obj2yaml/coff2yaml.cpp
  106   for (const auto &S : Obj.sections()) {
  154   for (const auto &ObjSection : Obj.sections()) {
tools/obj2yaml/wasm2yaml.cpp
  182   for (const auto &Sec : Obj.sections()) {
tools/sancov/sancov.cpp
  743   for (object::SectionRef Section : O.sections()) {
usr/include/c++/7.4.0/bits/alloc_traits.h
  387       using allocator_type = allocator<_Tp>;
  389       using value_type = _Tp;
  392       using pointer = _Tp*;
  395       using const_pointer = const _Tp*;
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  486 	destroy(allocator_type& __a, _Up* __p)
usr/include/c++/7.4.0/bits/allocator.h
  108     class allocator: public __allocator_base<_Tp>
  113       typedef _Tp*       pointer;
  114       typedef const _Tp* const_pointer;
  115       typedef _Tp&       reference;
  116       typedef const _Tp& const_reference;
  117       typedef _Tp        value_type;
  137 	allocator(const allocator<_Tp1>&) throw() { }
usr/include/c++/7.4.0/bits/move.h
   46     inline _GLIBCXX_CONSTEXPR _Tp*
   47     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
   72     constexpr _Tp&&
   73     forward(typename std::remove_reference<_Tp>::type& __t) noexcept
   83     constexpr _Tp&&
   84     forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
   98     move(_Tp&& __t) noexcept
  104     : public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
  105                     is_copy_constructible<_Tp>>::type { };
  136     inline _GLIBCXX17_CONSTEXPR _Tp*
  137     addressof(_Tp& __r) noexcept
  143     const _Tp* addressof(const _Tp&&) = delete;
  143     const _Tp* addressof(const _Tp&&) = delete;
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_construct.h
   74     _Construct(_T1* __p, _Args&&... __args)
   74     _Construct(_T1* __p, _Args&&... __args)
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
  204 	     allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_function.h
  121       typedef _Arg1 	first_argument_type; 
  124       typedef _Arg2 	second_argument_type;
  381     struct less : public binary_function<_Tp, _Tp, bool>
  381     struct less : public binary_function<_Tp, _Tp, bool>
  385       operator()(const _Tp& __x, const _Tp& __y) const
  385       operator()(const _Tp& __x, const _Tp& __y) const
usr/include/c++/7.4.0/bits/stl_iterator.h
 1224     __make_move_if_noexcept_iterator(_Tp* __i)
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  123       typedef _Tp        value_type;
  181       typedef _Tp                         value_type;
  183       typedef _Tp*                        pointer;
  184       typedef _Tp&                        reference;
  192       typedef _Tp                         value_type;
  194       typedef const _Tp*                  pointer;
  195       typedef const _Tp&                  reference;
usr/include/c++/7.4.0/bits/stl_map.h
  102       typedef _Key					key_type;
  104       typedef std::pair<const _Key, _Tp>		value_type;
usr/include/c++/7.4.0/bits/stl_pair.h
  100 	return __and_<is_constructible<_T1, const _U1&>,
  100 	return __and_<is_constructible<_T1, const _U1&>,
  101 		      is_constructible<_T2, const _U2&>>::value;
  101 		      is_constructible<_T2, const _U2&>>::value;
  107 	return __and_<is_convertible<const _U1&, _T1>,
  107 	return __and_<is_convertible<const _U1&, _T1>,
  108 		      is_convertible<const _U2&, _T2>>::value;
  108 		      is_convertible<const _U2&, _T2>>::value;
  114 	return __and_<is_constructible<_T1, _U1&&>,
  114 	return __and_<is_constructible<_T1, _U1&&>,
  115 		      is_constructible<_T2, _U2&&>>::value;
  115 		      is_constructible<_T2, _U2&&>>::value;
  121 	return __and_<is_convertible<_U1&&, _T1>,
  121 	return __and_<is_convertible<_U1&&, _T1>,
  122 		      is_convertible<_U2&&, _T2>>::value;
  122 		      is_convertible<_U2&&, _T2>>::value;
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  129 				  is_convertible<_U2&&, _T2>>;
  129 				  is_convertible<_U2&&, _T2>>;
  133 	return __and_<is_constructible<_T1, const _U1&>,
  133 	return __and_<is_constructible<_T1, const _U1&>,
  134 		      is_constructible<_T2, _U2&&>,
  134 		      is_constructible<_T2, _U2&&>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  143 				  is_convertible<const _U2&, _T2>>;
  143 				  is_convertible<const _U2&, _T2>>;
  147 	return __and_<is_constructible<_T1, _U1&&>,
  147 	return __and_<is_constructible<_T1, _U1&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  209     : private __pair_base<_T1, _T2>
  209     : private __pair_base<_T1, _T2>
  211       typedef _T1 first_type;    /// @c first_type is the first bound type
  212       typedef _T2 second_type;   /// @c second_type is the second bound type
  214       _T1 first;                 /// @c first is a copy of the first object
  215       _T2 second;                /// @c second is a copy of the second object
  252       using _PCCP = _PCC<true, _T1, _T2>;
  252       using _PCCP = _PCC<true, _T1, _T2>;
  260       constexpr pair(const _T1& __a, const _T2& __b)
  260       constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  283 			    _T1, _T2>;
  283 			    _T1, _T2>;
  291         constexpr pair(const pair<_U1, _U2>& __p)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  318        explicit constexpr pair(_U1&& __x, const _T2& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  326        : first(__x), second(std::forward<_U2>(__y)) { }
  332        explicit pair(const _T1& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  360 	constexpr pair(pair<_U1, _U2>&& __p)
  361 	: first(std::forward<_U1>(__p.first)),
  379 		__and_<is_copy_assignable<_T1>,
  380 		       is_copy_assignable<_T2>>::value,
  390 		__and_<is_move_assignable<_T1>,
  391 		       is_move_assignable<_T2>>::value,
  402       typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
  402       typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
  403 				is_assignable<_T2&, const _U2&>>::value,
  403 				is_assignable<_T2&, const _U2&>>::value,
  405 	operator=(const pair<_U1, _U2>& __p)
  405 	operator=(const pair<_U1, _U2>& __p)
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  414 				is_assignable<_T2&, _U2&&>>::value,
  414 				is_assignable<_T2&, _U2&&>>::value,
  416 	operator=(pair<_U1, _U2>&& __p)
  416 	operator=(pair<_U1, _U2>&& __p)
  454     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  454     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  523                    typename __decay_and_strip<_T2>::__type>
  524     make_pair(_T1&& __x, _T2&& __y)
  524     make_pair(_T1&& __x, _T2&& __y)
  527       typedef typename __decay_and_strip<_T2>::__type __ds_type2;
  529       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
usr/include/c++/7.4.0/bits/stl_tree.h
  563       typedef _Key 				key_type;
  758       static const _Key&
  782       static const _Key&
  894 		     const _Key& __k);
  898 		     const _Key& __k) const;
  902 		     const _Key& __k);
  906 		     const _Key& __k) const;
usr/include/c++/7.4.0/bits/stl_uninitialized.h
  288 			   _ForwardIterator __result, allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_vector.h
   77 	rebind<_Tp>::other _Tp_alloc_type;
  216     class vector : protected _Vector_base<_Tp, _Alloc>
  227       typedef _Vector_base<_Tp, _Alloc>			_Base;
  232       typedef _Tp					value_type;
  919       _Tp*
  923       const _Tp*
  962 	emplace_back(_Args&&... __args);
 1483 	_M_realloc_insert(iterator __position, _Args&&... __args);
usr/include/c++/7.4.0/bits/unique_ptr.h
  824     make_unique(_Args&&... __args)
usr/include/c++/7.4.0/ext/alloc_traits.h
  117       { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
usr/include/c++/7.4.0/ext/new_allocator.h
   63       typedef _Tp*       pointer;
   64       typedef const _Tp* const_pointer;
   65       typedef _Tp&       reference;
   66       typedef const _Tp& const_reference;
   67       typedef _Tp        value_type;
   84 	new_allocator(const new_allocator<_Tp1>&) _GLIBCXX_USE_NOEXCEPT { }
  111 	return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
  130       { return size_t(-1) / sizeof(_Tp); }
  135 	construct(_Up* __p, _Args&&... __args)
  135 	construct(_Up* __p, _Args&&... __args)
  136 	{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
  140 	destroy(_Up* __p) { __p->~_Up(); }
usr/include/c++/7.4.0/initializer_list
   50       typedef _E 		value_type;
   51       typedef const _E& 	reference;
   52       typedef const _E& 	const_reference;
   54       typedef const _E* 	iterator;
   55       typedef const _E* 	const_iterator;
usr/include/c++/7.4.0/tuple
  125       constexpr _Head_base(const _Head& __h)
  132         constexpr _Head_base(_UHead&& __h)
  159       static constexpr _Head&
  162       static constexpr const _Head&
  350       static constexpr _Head&
  353       static constexpr const _Head&
  360       constexpr _Tuple_impl(const _Head& __head)
  365         constexpr _Tuple_impl(_UHead&& __head)
  390 		    const _Head& __head)
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  608         constexpr tuple(const _Elements&... __elements)
  619       explicit constexpr tuple(const _Elements&... __elements)
  646         constexpr tuple(_UElements&&... __elements)
  730 	      const _Elements&... __elements)
  741                        const _Elements&... __elements)
 1302     constexpr _Head&
 1307     constexpr const _Head&
 1313     constexpr __tuple_element_t<__i, tuple<_Elements...>>&
 1319     constexpr const __tuple_element_t<__i, tuple<_Elements...>>&
 1325     constexpr __tuple_element_t<__i, tuple<_Elements...>>&&
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_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
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  762     typename add_rvalue_reference<_Tp>::type declval() noexcept;
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
  889       typedef decltype(__test<_Tp>(0)) type;
  894     : public __and_<__not_<is_void<_Tp>>,
  895                     __is_default_constructible_impl<_Tp>>
  915     : public __is_default_constructible_atom<_Tp>::type
  921     : public __is_default_constructible_safe<_Tp>::type
  984       typedef decltype(__test<_Tp, _Arg>(0)) type;
  989     : public __and_<is_destructible<_Tp>,
  990                     __is_direct_constructible_impl<_Tp, _Arg>>
 1072 			 __is_direct_constructible_ref_cast<_Tp, _Arg>,
 1073 			 __is_direct_constructible_new_safe<_Tp, _Arg>
 1079     : public __is_direct_constructible_new<_Tp, _Arg>::type
 1119     : public __is_direct_constructible<_Tp, _Arg>
 1130     : public __is_constructible_impl<_Tp, _Args...>::type
 1142     : public is_constructible<_Tp, const _Tp&>
 1142     : public is_constructible<_Tp, const _Tp&>
 1148     : public __is_copy_constructible_impl<_Tp>
 1160     : public is_constructible<_Tp, _Tp&&>
 1160     : public is_constructible<_Tp, _Tp&&>
 1166     : public __is_move_constructible_impl<_Tp>
 1215     : public __and_<is_constructible<_Tp, _Args...>,
 1216 		    __is_nt_constructible_impl<_Tp, _Args...>>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1252     : public __is_nothrow_move_constructible_impl<_Tp>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1292     : public __is_copy_assignable_impl<_Tp>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1310     : public __is_move_assignable_impl<_Tp>
 1377     static void __helper(const _Tp&);
 1380     static true_type __test(const _Tp&,
 1381                             decltype(__helper<const _Tp&>({}))* = 0);
 1390     typedef decltype(__test(declval<_Tp>())) type;
 1395       : public __is_implicitly_default_constructible_impl<_Tp>::type
 1400       : public __and_<is_default_constructible<_Tp>,
 1401                       __is_implicitly_default_constructible_safe<_Tp>>
 1526 	static void __test_aux(_To1);
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1545     : public __is_convertible_helper<_From, _To>::type
 1545     : public __is_convertible_helper<_From, _To>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1629     { typedef _Tp   type; };
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1664     : public __add_rvalue_reference_helper<_Tp>
 1955     { typedef _Tp     type; };
 2104     { typedef typename remove_cv<_Up>::type __type; };
 2118       typedef typename remove_reference<_Tp>::type __remove_type;
 2131       typedef _Tp __type;
 2144 	typename decay<_Tp>::type>::__type __type;
 2171     { typedef _Iffalse type; };