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

Declarations

include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
   20 class TypeIndex;
tools/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.h
   18 class TypeIndex;

References

include/llvm/ADT/ArrayRef.h
   43     using iterator = const T *;
   44     using const_iterator = const T *;
   50     const T *Data = nullptr;
   66     /*implicit*/ ArrayRef(const T &OneElt)
   70     /*implicit*/ ArrayRef(const T *data, size_t length)
   74     ArrayRef(const T *begin, const T *end)
   74     ArrayRef(const T *begin, const T *end)
   81     /*implicit*/ ArrayRef(const SmallVectorTemplateCommon<T, U> &Vec)
   87     /*implicit*/ ArrayRef(const std::vector<T, A> &Vec)
   92     /*implicit*/ constexpr ArrayRef(const std::array<T, N> &Arr)
   97     /*implicit*/ constexpr ArrayRef(const T (&Arr)[N]) : Data(Arr), Length(N) {}
  100     /*implicit*/ ArrayRef(const std::initializer_list<T> &Vec)
  145     const T *data() const { return Data; }
  151     const T &front() const {
  157     const T &back() const {
  163     template <typename Allocator> ArrayRef<T> copy(Allocator &A) {
  178     ArrayRef<T> slice(size_t N, size_t M) const {
  184     ArrayRef<T> slice(size_t N) const { return slice(N, size() - N); }
  187     ArrayRef<T> drop_front(size_t N = 1) const {
  193     ArrayRef<T> drop_back(size_t N = 1) const {
  200     template <class PredicateT> ArrayRef<T> drop_while(PredicateT Pred) const {
  206     template <class PredicateT> ArrayRef<T> drop_until(PredicateT Pred) const {
  211     ArrayRef<T> take_front(size_t N = 1) const {
  218     ArrayRef<T> take_back(size_t N = 1) const {
  226     template <class PredicateT> ArrayRef<T> take_while(PredicateT Pred) const {
  232     template <class PredicateT> ArrayRef<T> take_until(PredicateT Pred) const {
  239     const T &operator[](size_t Index) const {
  249     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  257     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  263     std::vector<T> vec() const {
  270     operator std::vector<T>() const {
  290   class LLVM_NODISCARD MutableArrayRef : public ArrayRef<T> {
  292     using iterator = T *;
  302     /*implicit*/ MutableArrayRef(T &OneElt) : ArrayRef<T>(OneElt) {}
  305     /*implicit*/ MutableArrayRef(T *data, size_t length)
  309     MutableArrayRef(T *begin, T *end) : ArrayRef<T>(begin, end) {}
  309     MutableArrayRef(T *begin, T *end) : ArrayRef<T>(begin, end) {}
  312     /*implicit*/ MutableArrayRef(SmallVectorImpl<T> &Vec)
  316     /*implicit*/ MutableArrayRef(std::vector<T> &Vec)
  321     /*implicit*/ constexpr MutableArrayRef(std::array<T, N> &Arr)
  326     /*implicit*/ constexpr MutableArrayRef(T (&Arr)[N]) : ArrayRef<T>(Arr) {}
  328     T *data() const { return const_cast<T*>(ArrayRef<T>::data()); }
  337     T &front() const {
  343     T &back() const {
  350     MutableArrayRef<T> slice(size_t N, size_t M) const {
  356     MutableArrayRef<T> slice(size_t N) const {
  361     MutableArrayRef<T> drop_front(size_t N = 1) const {
  366     MutableArrayRef<T> drop_back(size_t N = 1) const {
  374     MutableArrayRef<T> drop_while(PredicateT Pred) const {
  381     MutableArrayRef<T> drop_until(PredicateT Pred) const {
  386     MutableArrayRef<T> take_front(size_t N = 1) const {
  393     MutableArrayRef<T> take_back(size_t N = 1) const {
  402     MutableArrayRef<T> take_while(PredicateT Pred) const {
  409     MutableArrayRef<T> take_until(PredicateT Pred) const {
  416     T &operator[](size_t Index) const {
  468   ArrayRef<T> makeArrayRef(const SmallVectorImpl<T> &Vec) {
  468   ArrayRef<T> makeArrayRef(const SmallVectorImpl<T> &Vec) {
  474   ArrayRef<T> makeArrayRef(const SmallVector<T, N> &Vec) {
  474   ArrayRef<T> makeArrayRef(const SmallVector<T, N> &Vec) {
  480   ArrayRef<T> makeArrayRef(const std::vector<T> &Vec) {
  480   ArrayRef<T> makeArrayRef(const std::vector<T> &Vec) {
include/llvm/ADT/DenseMap.h
   40 struct DenseMapPair : public std::pair<KeyT, ValueT> {
   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; }
   45   ValueT &getSecond() { return std::pair<KeyT, ValueT>::second; }
   46   const ValueT &getSecond() const { return std::pair<KeyT, ValueT>::second; }
   65   using key_type = KeyT;
   66   using mapped_type = ValueT;
   69   using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
   69   using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
   71       DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
   71       DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
   78     if (shouldReverseIterate<KeyT>())
  123         is_trivially_copyable<ValueT>::value) {
  145   size_type count(const_arg_type_t<KeyT> Val) const {
  150   iterator find(const_arg_type_t<KeyT> Val) {
  156   const_iterator find(const_arg_type_t<KeyT> Val) const {
  185   ValueT lookup(const_arg_type_t<KeyT> Val) const {
  185   ValueT lookup(const_arg_type_t<KeyT> Val) const {
  195   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
  195   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
  202   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
  202   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
  210   std::pair<iterator, bool> try_emplace(KeyT &&Key, Ts &&... Args) {
  219         InsertIntoBucket(TheBucket, std::move(Key), std::forward<Ts>(Args)...);
  229   std::pair<iterator, bool> try_emplace(const KeyT &Key, Ts &&... Args) {
  237     TheBucket = InsertIntoBucket(TheBucket, Key, std::forward<Ts>(Args)...);
  249   std::pair<iterator, bool> insert_as(std::pair<KeyT, ValueT> &&KV,
  249   std::pair<iterator, bool> insert_as(std::pair<KeyT, ValueT> &&KV,
  272   bool erase(const KeyT &Val) {
  291   value_type& FindAndConstruct(const KeyT &Key) {
  299   ValueT &operator[](const KeyT &Key) {
  299   ValueT &operator[](const KeyT &Key) {
  303   value_type& FindAndConstruct(KeyT &&Key) {
  311   ValueT &operator[](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();
  380         ::new (&DestBucket->getSecond()) ValueT(std::move(B->getSecond()));
  392       const DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT> &other) {
  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>()) {
  515   BucketT *InsertIntoBucket(BucketT *TheBucket, KeyArg &&Key,
  516                             ValueArgs &&... Values) {
  520     ::new (&TheBucket->getSecond()) ValueT(std::forward<ValueArgs>(Values)...);
  520     ::new (&TheBucket->getSecond()) ValueT(std::forward<ValueArgs>(Values)...);
  525   BucketT *InsertIntoBucketWithLookup(BucketT *TheBucket, KeyT &&Key,
  526                                       ValueT &&Value, LookupKeyT &Lookup) {
  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>,
  684 class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
  685                                      KeyT, ValueT, KeyInfoT, BucketT> {
  685                                      KeyT, ValueT, KeyInfoT, BucketT> {
  690   using BaseT = DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
  690   using BaseT = DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
 1163   using ConstIterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, true>;
 1163   using ConstIterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, true>;
 1186     if (shouldReverseIterate<KeyT>()) {
 1199       const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConstSrc> &I)
 1199       const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConstSrc> &I)
 1204     if (shouldReverseIterate<KeyT>())
 1210     if (shouldReverseIterate<KeyT>())
 1232     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/DenseMapInfo.h
  186   using Pair = std::pair<T, U>;
  187   using FirstInfo = DenseMapInfo<T>;
include/llvm/ADT/Optional.h
  144     T value;
  160   explicit OptionalStorage(in_place_t, Args &&... args)
  161       : value(std::forward<Args>(args)...), hasVal(true) {}
  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);
  206       ::new ((void *)std::addressof(value)) T(std::move(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 *) {}
  286       T1 *I, T1 *E, T2 *Dest,
  286       T1 *I, T1 *E, T2 *Dest,
  286       T1 *I, T1 *E, T2 *Dest,
  287       typename std::enable_if<std::is_same<typename std::remove_const<T1>::type,
  288                                            T2>::value>::type * = nullptr) {
  294       memcpy(reinterpret_cast<void *>(Dest), I, (E - I) * sizeof(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>;
  352         new (&*I) 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/CodeView/AppendingTypeTableBuilder.h
   42   Optional<TypeIndex> getFirst() override;
   43   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   43   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   44   CVType getType(TypeIndex Index) override;
   45   StringRef getTypeName(TypeIndex Index) override;
   46   bool contains(TypeIndex Index) override;
   52   TypeIndex nextTypeIndex() const;
   57   TypeIndex insertRecordBytes(ArrayRef<uint8_t> &Record);
   58   TypeIndex insertRecord(ContinuationRecordBuilder &Builder);
   60   template <typename T> TypeIndex writeLeafType(T &Record) {
include/llvm/DebugInfo/CodeView/CVRecord.h
   68   SmallVector<std::pair<uint32_t, TypeIndex>, 8> Mappings;
include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
   30 Error visitTypeRecord(CVType &Record, TypeIndex Index,
include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h
   38   virtual std::string getTypeName(TypeIndex TI) = 0;
   66   Error mapInteger(TypeIndex &TypeInd, const Twine &Comment = "");
   99   template <typename T> Error mapInteger(T &Value, const Twine &Comment = "") {
  151       for (auto &X : Items) {
  160       for (auto &X : Items) {
include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h
   46                              Optional<TypeIndex> RefersTo);
   59   std::vector<CVType> end(TypeIndex Index);
include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h
   37   TypeIndex Inlinee;                  // ID of the function that was inlined.
  105   void addInlineSite(TypeIndex FuncId, StringRef FileName, uint32_t SourceLine);
include/llvm/DebugInfo/CodeView/Formatters.h
   51   static void format(const codeview::TypeIndex &V, raw_ostream &Stream,
   58         Stream << " (" << codeview::TypeIndex::simpleTypeName(V) << ")";
include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h
   41   DenseMap<GloballyHashedType, TypeIndex> HashedRecords;
   54   Optional<TypeIndex> getFirst() override;
   55   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   55   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   56   CVType getType(TypeIndex Index) override;
   57   StringRef getTypeName(TypeIndex Index) override;
   58   bool contains(TypeIndex Index) override;
   64   TypeIndex nextTypeIndex() const;
   72   TypeIndex insertRecordAs(GloballyHashedType Hash, size_t RecordSize,
  103   TypeIndex insertRecordBytes(ArrayRef<uint8_t> Data);
  104   TypeIndex insertRecord(ContinuationRecordBuilder &Builder);
  106   template <typename T> TypeIndex writeLeafType(T &Record) {
include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
   71   uint32_t getOffsetOfType(TypeIndex Index);
   73   Optional<CVType> tryGetType(TypeIndex Index);
   75   CVType getType(TypeIndex Index) override;
   76   StringRef getTypeName(TypeIndex Index) override;
   77   bool contains(TypeIndex Index) override;
   80   Optional<TypeIndex> getFirst() override;
   81   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   81   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   84   Error ensureTypeExists(TypeIndex Index);
   85   void ensureCapacityFor(TypeIndex Index);
   87   Error visitRangeForType(TypeIndex TI);
   88   Error fullScanForType(TypeIndex TI);
   89   void visitRange(TypeIndex Begin, uint32_t BeginOffset, TypeIndex End);
   89   void visitRange(TypeIndex Begin, uint32_t BeginOffset, TypeIndex End);
   95   TypeIndex LargestTypeIndex = TypeIndex::None();
   95   TypeIndex LargestTypeIndex = TypeIndex::None();
include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h
   41   DenseMap<LocallyHashedType, TypeIndex> HashedRecords;
   51   Optional<TypeIndex> getFirst() override;
   52   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   52   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   53   CVType getType(TypeIndex Index) override;
   54   StringRef getTypeName(TypeIndex Index) override;
   55   bool contains(TypeIndex Index) override;
   61   TypeIndex nextTypeIndex() const;
   67   TypeIndex insertRecordAs(hash_code Hash, ArrayRef<uint8_t> &Record);
   68   TypeIndex insertRecordBytes(ArrayRef<uint8_t> &Record);
   69   TypeIndex insertRecord(ContinuationRecordBuilder &Builder);
   71   template <typename T> TypeIndex writeLeafType(T &Record) {
include/llvm/DebugInfo/CodeView/RecordName.h
   18 std::string computeTypeName(TypeCollection &Types, TypeIndex Index);
include/llvm/DebugInfo/CodeView/SymbolRecord.h
   60   TypeIndex FunctionType;
  154   std::vector<TypeIndex> Indices;
  347   TypeIndex Inlinee;
  378   TypeIndex Index;
  409   TypeIndex Type;
  687   TypeIndex Index;
  808   TypeIndex Type;
  830   TypeIndex Type;
  863   TypeIndex Type;
  877   TypeIndex BuildId;
  891   TypeIndex Type;
  906   TypeIndex Type;
  921   TypeIndex Type;
  941   TypeIndex Type;
  963   TypeIndex Type;
include/llvm/DebugInfo/CodeView/TypeCollection.h
   25   virtual Optional<TypeIndex> getFirst() = 0;
   26   virtual Optional<TypeIndex> getNext(TypeIndex Prev) = 0;
   26   virtual Optional<TypeIndex> getNext(TypeIndex Prev) = 0;
   28   virtual CVType getType(TypeIndex Index) = 0;
   29   virtual StringRef getTypeName(TypeIndex Index) = 0;
   30   virtual bool contains(TypeIndex Index) = 0;
   35     Optional<TypeIndex> Next = getFirst();
   38       TypeIndex N = *Next;
include/llvm/DebugInfo/CodeView/TypeDeserializer.h
   73   Error visitTypeBegin(CVType &Record, TypeIndex Index) override {
include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h
   38   void printTypeIndex(StringRef FieldName, TypeIndex TI) const;
   40   void printItemIndex(StringRef FieldName, TypeIndex TI) const;
   49   Error visitTypeBegin(CVType &Record, TypeIndex Index) override;
include/llvm/DebugInfo/CodeView/TypeIndex.h
  122   static TypeIndex fromArrayIndex(uint32_t Index) {
  136   TypeIndex makeDirect() const { return TypeIndex{getSimpleKind()}; }
  138   static TypeIndex None() { return TypeIndex(SimpleTypeKind::None); }
  139   static TypeIndex Void() { return TypeIndex(SimpleTypeKind::Void); }
  140   static TypeIndex VoidPointer32() {
  143   static TypeIndex VoidPointer64() {
  147   static TypeIndex NullptrT() {
  154   static TypeIndex SignedCharacter() {
  157   static TypeIndex UnsignedCharacter() {
  160   static TypeIndex NarrowCharacter() {
  163   static TypeIndex WideCharacter() {
  166   static TypeIndex Int16Short() {
  169   static TypeIndex UInt16Short() {
  172   static TypeIndex Int32() { return TypeIndex(SimpleTypeKind::Int32); }
  173   static TypeIndex UInt32() { return TypeIndex(SimpleTypeKind::UInt32); }
  174   static TypeIndex Int32Long() { return TypeIndex(SimpleTypeKind::Int32Long); }
  175   static TypeIndex UInt32Long() {
  178   static TypeIndex Int64() { return TypeIndex(SimpleTypeKind::Int64); }
  179   static TypeIndex UInt64() { return TypeIndex(SimpleTypeKind::UInt64); }
  180   static TypeIndex Int64Quad() { return TypeIndex(SimpleTypeKind::Int64Quad); }
  181   static TypeIndex UInt64Quad() {
  185   static TypeIndex Float32() { return TypeIndex(SimpleTypeKind::Float32); }
  186   static TypeIndex Float64() { return TypeIndex(SimpleTypeKind::Float64); }
  188   TypeIndex &operator+=(unsigned N) {
  193   TypeIndex &operator++() {
  198   TypeIndex operator++(int) {
  199     TypeIndex Copy = *this;
  204   TypeIndex &operator-=(unsigned N) {
  210   TypeIndex &operator--() {
  215   TypeIndex operator--(int) {
  216     TypeIndex Copy = *this;
  221   friend inline bool operator==(const TypeIndex &A, const TypeIndex &B) {
  221   friend inline bool operator==(const TypeIndex &A, const TypeIndex &B) {
  225   friend inline bool operator!=(const TypeIndex &A, const TypeIndex &B) {
  225   friend inline bool operator!=(const TypeIndex &A, const TypeIndex &B) {
  229   friend inline bool operator<(const TypeIndex &A, const TypeIndex &B) {
  229   friend inline bool operator<(const TypeIndex &A, const TypeIndex &B) {
  233   friend inline bool operator<=(const TypeIndex &A, const TypeIndex &B) {
  233   friend inline bool operator<=(const TypeIndex &A, const TypeIndex &B) {
  237   friend inline bool operator>(const TypeIndex &A, const TypeIndex &B) {
  237   friend inline bool operator>(const TypeIndex &A, const TypeIndex &B) {
  241   friend inline bool operator>=(const TypeIndex &A, const TypeIndex &B) {
  241   friend inline bool operator>=(const TypeIndex &A, const TypeIndex &B) {
  245   friend inline TypeIndex operator+(const TypeIndex &A, uint32_t N) {
  245   friend inline TypeIndex operator+(const TypeIndex &A, uint32_t N) {
  246     TypeIndex Result(A);
  251   friend inline TypeIndex operator-(const TypeIndex &A, uint32_t N) {
  251   friend inline TypeIndex operator-(const TypeIndex &A, uint32_t N) {
  253     TypeIndex Result(A);
  258   friend inline uint32_t operator-(const TypeIndex &A, const TypeIndex &B) {
  258   friend inline uint32_t operator-(const TypeIndex &A, const TypeIndex &B) {
  263   static StringRef simpleTypeName(TypeIndex TI);
  273   TypeIndex Type;
  277 void printTypeIndex(ScopedPrinter &Printer, StringRef FieldName, TypeIndex TI,
  282   static inline codeview::TypeIndex getEmptyKey() {
  285   static inline codeview::TypeIndex getTombstoneKey() {
  288   static unsigned getHashValue(const codeview::TypeIndex &TI) {
  291   static bool isEqual(const codeview::TypeIndex &LHS,
  292                       const codeview::TypeIndex &RHS) {
include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
   31                          SmallVectorImpl<TypeIndex> &Indices);
   33                          SmallVectorImpl<TypeIndex> &Indices);
   42                                  SmallVectorImpl<TypeIndex> &Indices);
include/llvm/DebugInfo/CodeView/TypeRecord.h
  110   MemberPointerInfo(TypeIndex ContainingType,
  114   TypeIndex getContainingType() const { return ContainingType; }
  119   TypeIndex ContainingType;
  139   ModifierRecord(TypeIndex ModifiedType, ModifierOptions Modifiers)
  143   TypeIndex getModifiedType() const { return ModifiedType; }
  146   TypeIndex ModifiedType;
  155   ProcedureRecord(TypeIndex ReturnType, CallingConvention CallConv,
  157                   TypeIndex ArgumentList)
  162   TypeIndex getReturnType() const { return ReturnType; }
  166   TypeIndex getArgumentList() const { return ArgumentList; }
  168   TypeIndex ReturnType;
  172   TypeIndex ArgumentList;
  181   MemberFunctionRecord(TypeIndex ReturnType, TypeIndex ClassType,
  181   MemberFunctionRecord(TypeIndex ReturnType, TypeIndex ClassType,
  182                        TypeIndex ThisType, CallingConvention CallConv,
  184                        TypeIndex ArgumentList, int32_t ThisPointerAdjustment)
  191   TypeIndex getReturnType() const { return ReturnType; }
  192   TypeIndex getClassType() const { return ClassType; }
  193   TypeIndex getThisType() const { return ThisType; }
  197   TypeIndex getArgumentList() const { return ArgumentList; }
  200   TypeIndex ReturnType;
  201   TypeIndex ClassType;
  202   TypeIndex ThisType;
  206   TypeIndex ArgumentList;
  226   MemberFuncIdRecord(TypeIndex ClassType, TypeIndex FunctionType,
  226   MemberFuncIdRecord(TypeIndex ClassType, TypeIndex FunctionType,
  231   TypeIndex getClassType() const { return ClassType; }
  232   TypeIndex getFunctionType() const { return FunctionType; }
  235   TypeIndex ClassType;
  236   TypeIndex FunctionType;
  246   ArgListRecord(TypeRecordKind Kind, ArrayRef<TypeIndex> Indices)
  249   ArrayRef<TypeIndex> getIndices() const { return ArgIndices; }
  251   std::vector<TypeIndex> ArgIndices;
  260   StringListRecord(TypeRecordKind Kind, ArrayRef<TypeIndex> Indices)
  263   ArrayRef<TypeIndex> getIndices() const { return StringIndices; }
  265   std::vector<TypeIndex> StringIndices;
  289   PointerRecord(TypeIndex ReferentType, uint32_t Attrs)
  293   PointerRecord(TypeIndex ReferentType, PointerKind PK, PointerMode PM,
  298   PointerRecord(TypeIndex ReferentType, PointerKind PK, PointerMode PM,
  303   TypeIndex getReferentType() const { return ReferentType; }
  353   TypeIndex ReferentType;
  379   NestedTypeRecord(TypeIndex Type, StringRef Name)
  382   TypeIndex getNestedType() const { return Type; }
  385   TypeIndex Type;
  405   ArrayRecord(TypeIndex ElementType, TypeIndex IndexType, uint64_t Size,
  405   ArrayRecord(TypeIndex ElementType, TypeIndex IndexType, uint64_t Size,
  410   TypeIndex getElementType() const { return ElementType; }
  411   TypeIndex getIndexType() const { return IndexType; }
  415   TypeIndex ElementType;
  416   TypeIndex IndexType;
  426             TypeIndex FieldList, StringRef Name, StringRef UniqueName)
  458   TypeIndex getFieldList() const { return FieldList; }
  464   TypeIndex FieldList;
  475               TypeIndex FieldList, TypeIndex DerivationList,
  475               TypeIndex FieldList, TypeIndex DerivationList,
  476               TypeIndex VTableShape, uint64_t Size, StringRef Name,
  493   TypeIndex getDerivationList() const { return DerivationList; }
  494   TypeIndex getVTableShape() const { return VTableShape; }
  497   TypeIndex DerivationList;
  498   TypeIndex VTableShape;
  506   UnionRecord(uint16_t MemberCount, ClassOptions Options, TypeIndex FieldList,
  528   EnumRecord(uint16_t MemberCount, ClassOptions Options, TypeIndex FieldList,
  529              StringRef Name, StringRef UniqueName, TypeIndex UnderlyingType)
  534   TypeIndex getUnderlyingType() const { return UnderlyingType; }
  536   TypeIndex UnderlyingType;
  544   BitFieldRecord(TypeIndex Type, uint8_t BitSize, uint8_t BitOffset)
  548   TypeIndex getType() const { return Type; }
  552   TypeIndex Type;
  604   StringIdRecord(TypeIndex Id, StringRef String)
  607   TypeIndex getId() const { return Id; }
  610   TypeIndex Id;
  619   FuncIdRecord(TypeIndex ParentScope, TypeIndex FunctionType, StringRef Name)
  619   FuncIdRecord(TypeIndex ParentScope, TypeIndex FunctionType, StringRef Name)
  623   TypeIndex getParentScope() const { return ParentScope; }
  624   TypeIndex getFunctionType() const { return FunctionType; }
  627   TypeIndex ParentScope;
  628   TypeIndex FunctionType;
  637   UdtSourceLineRecord(TypeIndex UDT, TypeIndex SourceFile, uint32_t LineNumber)
  637   UdtSourceLineRecord(TypeIndex UDT, TypeIndex SourceFile, uint32_t LineNumber)
  641   TypeIndex getUDT() const { return UDT; }
  642   TypeIndex getSourceFile() const { return SourceFile; }
  645   TypeIndex UDT;
  646   TypeIndex SourceFile;
  655   UdtModSourceLineRecord(TypeIndex UDT, TypeIndex SourceFile,
  655   UdtModSourceLineRecord(TypeIndex UDT, TypeIndex SourceFile,
  660   TypeIndex getUDT() const { return UDT; }
  661   TypeIndex getSourceFile() const { return SourceFile; }
  665   TypeIndex UDT;
  666   TypeIndex SourceFile;
  676   BuildInfoRecord(ArrayRef<TypeIndex> ArgIndices)
  680   ArrayRef<TypeIndex> getArgs() const { return ArgIndices; }
  692   SmallVector<TypeIndex, MaxArgs> ArgIndices;
  700   VFTableRecord(TypeIndex CompleteClass, TypeIndex OverriddenVFTable,
  700   VFTableRecord(TypeIndex CompleteClass, TypeIndex OverriddenVFTable,
  709   TypeIndex getCompleteClass() const { return CompleteClass; }
  710   TypeIndex getOverriddenVTable() const { return OverriddenVFTable; }
  718   TypeIndex CompleteClass;
  719   TypeIndex OverriddenVFTable;
  729   OneMethodRecord(TypeIndex Type, MemberAttributes Attrs, int32_t VFTableOffset,
  733   OneMethodRecord(TypeIndex Type, MemberAccess Access, MethodKind MK,
  738   TypeIndex getType() const { return Type; }
  750   TypeIndex Type;
  774   OverloadedMethodRecord(uint16_t NumOverloads, TypeIndex MethodList,
  780   TypeIndex getMethodList() const { return MethodList; }
  784   TypeIndex MethodList;
  793   DataMemberRecord(MemberAttributes Attrs, TypeIndex Type, uint64_t Offset,
  797   DataMemberRecord(MemberAccess Access, TypeIndex Type, uint64_t Offset,
  803   TypeIndex getType() const { return Type; }
  808   TypeIndex Type;
  818   StaticDataMemberRecord(MemberAttributes Attrs, TypeIndex Type, StringRef Name)
  821   StaticDataMemberRecord(MemberAccess Access, TypeIndex Type, StringRef Name)
  826   TypeIndex getType() const { return Type; }
  830   TypeIndex Type;
  860   VFPtrRecord(TypeIndex Type)
  863   TypeIndex getType() const { return Type; }
  865   TypeIndex Type;
  873   BaseClassRecord(MemberAttributes Attrs, TypeIndex Type, uint64_t Offset)
  876   BaseClassRecord(MemberAccess Access, TypeIndex Type, uint64_t Offset)
  881   TypeIndex getBaseType() const { return Type; }
  885   TypeIndex Type;
  895                          TypeIndex BaseType, TypeIndex VBPtrType,
  895                          TypeIndex BaseType, TypeIndex VBPtrType,
  900                          TypeIndex BaseType, TypeIndex VBPtrType,
  900                          TypeIndex BaseType, TypeIndex VBPtrType,
  906   TypeIndex getBaseType() const { return BaseType; }
  907   TypeIndex getVBPtrType() const { return VBPtrType; }
  912   TypeIndex BaseType;
  913   TypeIndex VBPtrType;
  924   ListContinuationRecord(TypeIndex ContinuationIndex)
  928   TypeIndex getContinuationIndex() const { return ContinuationIndex; }
  930   TypeIndex ContinuationIndex;
include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h
   23     TypeIndex getModifiedType(const CVType &CVT);
include/llvm/DebugInfo/CodeView/TypeRecordMapping.h
   31   Error visitTypeBegin(CVType &Record, TypeIndex Index) override;
include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
   39                        SmallVectorImpl<TypeIndex> &SourceToDest,
   63 Error mergeIdRecords(MergingTypeTableBuilder &Dest, ArrayRef<TypeIndex> Types,
   64                      SmallVectorImpl<TypeIndex> &SourceToDest,
   84                             SmallVectorImpl<TypeIndex> &SourceToDest,
   90                             SmallVectorImpl<TypeIndex> &SourceToDest,
   96                        SmallVectorImpl<TypeIndex> &SourceToDest,
  101 Error mergeIdRecords(GlobalTypeTableBuilder &Dest, ArrayRef<TypeIndex> Types,
  102                      SmallVectorImpl<TypeIndex> &SourceToDest,
include/llvm/DebugInfo/CodeView/TypeTableCollection.h
   24   Optional<TypeIndex> getFirst() override;
   25   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   25   Optional<TypeIndex> getNext(TypeIndex Prev) override;
   27   CVType getType(TypeIndex Index) override;
   28   StringRef getTypeName(TypeIndex Index) override;
   29   bool contains(TypeIndex Index) override;
include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h
   49   Error visitTypeBegin(CVType &Record, TypeIndex Index) override {
include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h
   32   virtual Error visitTypeBegin(CVType &Record, TypeIndex Index) {
include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h
   31                   std::vector<codeview::TypeIndex> Indices);
   39   std::vector<codeview::TypeIndex> Matches;
include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h
   24   NativeTypeArray(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI,
   43   codeview::TypeIndex Index;
include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h
   25   NativeTypeEnum(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI,
   65   codeview::TypeIndex Index;
include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h
   30                         codeview::TypeIndex TI, codeview::ProcedureRecord Proc);
   33                         codeview::TypeIndex TI,
   57   void initializeArgList(codeview::TypeIndex ArgListTI);
   65   codeview::TypeIndex Index;
include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h
   25                     codeview::TypeIndex TI);
   29                     codeview::TypeIndex TI, codeview::PointerRecord PR);
   53   codeview::TypeIndex TI;
include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h
   23   NativeTypeUDT(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI,
   26   NativeTypeUDT(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI,
   61   codeview::TypeIndex Index;
include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h
   25                     codeview::TypeIndex TI, codeview::VFTableShapeRecord SR);
   38   codeview::TypeIndex TI;
include/llvm/DebugInfo/PDB/Native/SymbolCache.h
   40   DenseMap<codeview::TypeIndex, SymIndexId> TypeIndexToSymbolId;
   45   DenseMap<std::pair<codeview::TypeIndex, uint32_t>, SymIndexId>
   62   SymIndexId createSymbolForType(codeview::TypeIndex TI, codeview::CVType CVT,
   75   SymIndexId createSymbolForModifiedType(codeview::TypeIndex ModifierTI,
   78   SymIndexId createSimpleType(codeview::TypeIndex TI,
   85   SymIndexId createSymbol(Args &&... ConstructorArgs) {
  112   SymIndexId findSymbolByTypeIndex(codeview::TypeIndex TI);
  115   SymIndexId getOrCreateFieldListMember(codeview::TypeIndex FieldListTI,
  119     std::pair<codeview::TypeIndex, uint32_t> Key{FieldListTI, Index};
include/llvm/DebugInfo/PDB/Native/TpiStream.h
   60   Expected<codeview::TypeIndex>
   61   findFullDeclForForwardRef(codeview::TypeIndex ForwardRefTI) const;
   63   std::vector<codeview::TypeIndex> findRecordsByName(StringRef Name) const;
   65   codeview::CVType getType(codeview::TypeIndex Index);
   90   std::vector<std::vector<codeview::TypeIndex>> HashMap;
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/Alignment.h
  103     return Constant<std::alignment_of<T>::value>();
include/llvm/Support/BinaryStreamArray.h
  262   typedef FixedStreamArrayIterator<T> Iterator;
  269   bool operator==(const FixedStreamArray<T> &Other) const {
  273   bool operator!=(const FixedStreamArray<T> &Other) const {
  279   const T &operator[](uint32_t Index) const {
  281     uint32_t Off = Index * sizeof(T);
  283     if (auto EC = Stream.readBytes(Off, sizeof(T), Data)) {
  293   uint32_t size() const { return Stream.getLength() / sizeof(T); }
  297   FixedStreamArrayIterator<T> begin() const {
  301   FixedStreamArrayIterator<T> end() const {
  305   const T &front() const { return *begin(); }
  306   const T &back() const {
  319     : public iterator_facade_base<FixedStreamArrayIterator<T>,
  320                                   std::random_access_iterator_tag, const T> {
  323   FixedStreamArrayIterator(const FixedStreamArray<T> &Array, uint32_t Index)
  326   FixedStreamArrayIterator<T> &
  327   operator=(const FixedStreamArrayIterator<T> &Other) {
  333   const T &operator*() const { return Array[Index]; }
  334   const T &operator*() { return Array[Index]; }
  336   bool operator==(const FixedStreamArrayIterator<T> &R) const {
  341   FixedStreamArrayIterator<T> &operator+=(std::ptrdiff_t N) {
  346   FixedStreamArrayIterator<T> &operator-=(std::ptrdiff_t N) {
  352   std::ptrdiff_t operator-(const FixedStreamArrayIterator<T> &R) const {
  358   bool operator<(const FixedStreamArrayIterator<T> &RHS) const {
  364   FixedStreamArray<T> Array;
include/llvm/Support/BinaryStreamReader.h
  235   Error readArray(FixedStreamArray<T> &Array, uint32_t NumItems) {
  241     if (NumItems > UINT32_MAX / sizeof(T))
  246     if (auto EC = readStreamRef(View, NumItems * sizeof(T)))
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) {
  731 T cantFail(Expected<T> ValOrErr, const char *Msg = nullptr) {
  731 T cantFail(Expected<T> ValOrErr, const char *Msg = nullptr) {
include/llvm/Support/FormatAdapters.h
   22   explicit FormatAdapter(T &&Item) : Item(std::forward<T>(Item)) {}
   34   AlignAdapter(T &&Item, AlignStyle Where, size_t Amount, char Fill)
   85 detail::AlignAdapter<T> fmt_align(T &&Item, AlignStyle Where, size_t Amount,
include/llvm/Support/FormatVariadic.h
  253 inline auto formatv(const char *Fmt, Ts &&... Vals) -> formatv_object<decltype(
  254     std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
  256       std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
  259       std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
include/llvm/Support/FormatVariadicDetails.h
   33   T Item;
   36   explicit provider_format_adapter(T &&Item) : Item(std::forward<T>(Item)) {}
   36   explicit provider_format_adapter(T &&Item) : Item(std::forward<T>(Item)) {}
   39     format_provider<typename std::decay<T>::type>::format(Item, S, Options);
   62   using Decayed = typename std::decay<T>::type;
   78   using ConstRefT = const typename std::decay<T>::type &;
  136 typename std::enable_if<uses_format_provider<T>::value,
  137                         provider_format_adapter<T>>::type
  138 build_format_adapter(T &&Item) {
  139   return provider_format_adapter<T>(std::forward<T>(Item));
include/llvm/Support/YAMLTraits.h
  313   using Signature_enumeration = void (*)(class IO&, T&);
  322     (sizeof(test<ScalarEnumerationTraits<T>>(nullptr)) == 1);
  329   using Signature_bitset = void (*)(class IO&, T&);
  337   static bool const value = (sizeof(test<ScalarBitSetTraits<T>>(nullptr)) == 1);
  344   using Signature_input = StringRef (*)(StringRef, void*, T&);
  345   using Signature_output = void (*)(const T&, void*, raw_ostream&);
  357       (sizeof(test<ScalarTraits<T>>(nullptr, nullptr, nullptr)) == 1);
  364   using Signature_input = StringRef (*)(StringRef, void *, T &);
  365   using Signature_output = void (*)(const T &, void *, raw_ostream &);
  375       (sizeof(test<BlockScalarTraits<T>>(nullptr, nullptr)) == 1);
  380   using Signature_input = StringRef (*)(StringRef, StringRef, void *, T &);
  381   using Signature_output = void (*)(const T &, void *, raw_ostream &,
  383   using Signature_mustQuote = QuotingType (*)(const T &, StringRef);
  393       (sizeof(test<TaggedScalarTraits<T>>(nullptr, nullptr, nullptr)) == 1);
  412   using Signature_mapping = void (*)(class IO &, T &);
  419   static bool const value = (sizeof(test<MappingTraits<T>>(nullptr)) == 1);
  438   using Signature_validate = StringRef (*)(class IO &, T &);
  445   static bool const value = (sizeof(test<MappingTraits<T>>(nullptr)) == 1);
  452   using Signature_size = size_t (*)(class IO&, T&);
  460   static bool const value =  (sizeof(test<SequenceTraits<T>>(nullptr)) == 1);
  467   using Signature_input = void (*)(IO &io, StringRef key, T &v);
  476       (sizeof(test<CustomMappingTraits<T>>(nullptr)) == 1);
  516   using Signature_size = size_t (*)(class IO &, T &);
  524   static bool const value = (sizeof(test<DocumentListTraits<T>>(nullptr))==1);
  528   using Signature_getKind = NodeKind (*)(const T &);
  535   static bool const value = (sizeof(test<PolymorphicTraits<T>>(nullptr)) == 1);
  849   template <typename T> void mapRequired(const char *Key, T &Val) {
  941   void processKey(const char *Key, T &Val, bool Required, Context &Ctx) {
  988 typename std::enable_if<has_ScalarTraits<T>::value, void>::type
  989 yamlize(IO &io, T &Val, bool, EmptyContext &Ctx) {
  993     ScalarTraits<T>::output(Val, io.getContext(), Buffer);
  995     io.scalarString(Str, ScalarTraits<T>::mustQuote(Str));
  999     io.scalarString(Str, ScalarTraits<T>::mustQuote(Str));
 1000     StringRef Result = ScalarTraits<T>::input(Str, io.getContext(), Val);
 1904     : SequenceTraitsImpl<std::vector<T>, SequenceElementTraits<T>::flow> {};
 1909     : SequenceTraitsImpl<SmallVector<T, N>, SequenceElementTraits<T>::flow> {};
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/CodeGen/AsmPrinter/CodeViewDebug.cpp
  118   std::string getTypeName(TypeIndex TI) {
  122         TypeName = TypeIndex::simpleTypeName(TI);
  355 TypeIndex CodeViewDebug::getScopeIndex(const DIScope *Scope) {
  370   auto TI = TypeTable.writeLeafType(SID);
  374 TypeIndex CodeViewDebug::getFuncIdForSubprogram(const DISubprogram *SP) {
  387   TypeIndex TI;
  392     TypeIndex ClassType = getTypeIndex(Class);
  398     TypeIndex ParentScope = getScopeIndex(Scope);
  436 TypeIndex CodeViewDebug::getMemberFunctionType(const DISubprogram *SP,
  457   TypeIndex TI = lowerTypeMemberFunction(
  462 TypeIndex CodeViewDebug::recordTypeIndexForDINode(const DINode *Node,
  463                                                   TypeIndex TI,
  653   Optional<TypeIndex> B = Table.getFirst();
  685   TypeIndex TI(TypeIndex::FirstNonSimpleIndex);
  685   TypeIndex TI(TypeIndex::FirstNonSimpleIndex);
  808 static TypeIndex getStringIdTypeIdx(GlobalTypeTableBuilder &TypeTable,
  825   TypeIndex BuildInfoArgs[BuildInfoRecord::MaxArgs] = {};
  837   TypeIndex BuildInfoIndex = TypeTable.writeLeafType(BIR);
  865     TypeIndex InlineeIdx = TypeIndices[{SP, nullptr}];
  887   TypeIndex InlineeIdx = TypeIndices[{Site.Inlinee, nullptr}];
 1492 TypeIndex CodeViewDebug::lowerType(const DIType *Ty, const DIType *ClassTy) {
 1533       return TypeIndex::NullptrT();
 1534     return TypeIndex::None();
 1541 TypeIndex CodeViewDebug::lowerTypeAlias(const DIDerivedType *Ty) {
 1542   TypeIndex UnderlyingTypeIndex = getTypeIndex(Ty->getBaseType());
 1557 TypeIndex CodeViewDebug::lowerTypeArray(const DICompositeType *Ty) {
 1559   TypeIndex ElementTypeIndex = getTypeIndex(ElementType);
 1561   TypeIndex IndexType = getPointerSizeInBytes() == 8
 1603 TypeIndex CodeViewDebug::lowerTypeBasic(const DIBasicType *Ty) {
 1604   TypeIndex Index;
 1696 TypeIndex CodeViewDebug::lowerTypePointer(const DIDerivedType *Ty,
 1698   TypeIndex PointeeTI = getTypeIndex(Ty->getBaseType());
 1767 TypeIndex CodeViewDebug::lowerTypeMemberPointer(const DIDerivedType *Ty,
 1770   TypeIndex ClassTI = getTypeIndex(Ty->getClassType());
 1771   TypeIndex PointeeTI = getTypeIndex(Ty->getBaseType(), Ty->getClassType());
 1800 TypeIndex CodeViewDebug::lowerTypeModifier(const DIDerivedType *Ty) {
 1846   TypeIndex ModifiedTI = getTypeIndex(BaseTy);
 1857 TypeIndex CodeViewDebug::lowerTypeFunction(const DISubroutineType *Ty) {
 1858   SmallVector<TypeIndex, 8> ReturnAndArgTypeIndices;
 1864       ReturnAndArgTypeIndices.back() == TypeIndex::Void()) {
 1865     ReturnAndArgTypeIndices.back() = TypeIndex::None();
 1867   TypeIndex ReturnTypeIndex = TypeIndex::Void();
 1867   TypeIndex ReturnTypeIndex = TypeIndex::Void();
 1868   ArrayRef<TypeIndex> ArgTypeIndices = None;
 1876   TypeIndex ArgListIndex = TypeTable.writeLeafType(ArgListRec);
 1886 TypeIndex CodeViewDebug::lowerTypeMemberFunction(const DISubroutineType *Ty,
 1892   TypeIndex ClassType = getTypeIndex(ClassTy);
 1897   SmallVector<TypeIndex, 8> ArgTypeIndices;
 1898   TypeIndex ReturnTypeIndex = TypeIndex::Void();
 1898   TypeIndex ReturnTypeIndex = TypeIndex::Void();
 1906   TypeIndex ThisTypeIndex;
 1921   if (!ArgTypeIndices.empty() && ArgTypeIndices.back() == TypeIndex::Void())
 1922     ArgTypeIndices.back() = TypeIndex::None();
 1925   TypeIndex ArgListIndex = TypeTable.writeLeafType(ArgListRec);
 1934 TypeIndex CodeViewDebug::lowerTypeVFTableShape(const DIDerivedType *Ty) {
 2031 void CodeViewDebug::addUDTSrcLine(const DIType *Ty, TypeIndex TI) {
 2044     TypeIndex SIDI = TypeTable.writeLeafType(SIDR);
 2051 TypeIndex CodeViewDebug::lowerTypeEnum(const DICompositeType *Ty) {
 2053   TypeIndex FTI;
 2079   TypeIndex EnumTI = TypeTable.writeLeafType(ER);
 2110   TypeIndex VShapeTI;
 2206 TypeIndex CodeViewDebug::lowerTypeClass(const DICompositeType *Ty) {
 2229   TypeIndex FwdDeclTI = TypeTable.writeLeafType(CR);
 2235 TypeIndex CodeViewDebug::lowerCompleteTypeClass(const DICompositeType *Ty) {
 2239   TypeIndex FieldTI;
 2240   TypeIndex VShapeTI;
 2263   TypeIndex ClassTI = TypeTable.writeLeafType(CR);
 2272 TypeIndex CodeViewDebug::lowerTypeUnion(const DICompositeType *Ty) {
 2281   TypeIndex FwdDeclTI = TypeTable.writeLeafType(UR);
 2287 TypeIndex CodeViewDebug::lowerCompleteTypeUnion(const DICompositeType *Ty) {
 2289   TypeIndex FieldTI;
 2303   TypeIndex UnionTI = TypeTable.writeLeafType(UR);
 2312 std::tuple<TypeIndex, TypeIndex, unsigned, bool>
 2312 std::tuple<TypeIndex, TypeIndex, unsigned, bool>
 2354     TypeIndex MemberBaseType = getTypeIndex(Member->getBaseType());
 2402       TypeIndex MethodType = getMemberFunctionType(SP, Ty);
 2422       TypeIndex MethodList = TypeTable.writeLeafType(MOLR);
 2436   TypeIndex FieldTI = TypeTable.insertRecord(ContinuationBuilder);
 2441 TypeIndex CodeViewDebug::getVBPTypeIndex() {
 2444     ModifierRecord MR(TypeIndex::Int32(), ModifierOptions::Const);
 2445     TypeIndex ModifiedTI = TypeTable.writeLeafType(MR);
 2458 TypeIndex CodeViewDebug::getTypeIndex(const DIType *Ty, const DIType *ClassTy) {
 2461     return TypeIndex::Void();
 2471   TypeIndex TI = lowerType(Ty, ClassTy);
 2475 codeview::TypeIndex
 2497   TypeIndex TI = lowerTypePointer(PtrTy, Options);
 2501 TypeIndex CodeViewDebug::getTypeIndexForReferenceTo(const DIType *Ty) {
 2510 TypeIndex CodeViewDebug::getCompleteTypeIndex(const DIType *Ty) {
 2513     return TypeIndex::Void();
 2543     TypeIndex FwdDeclTI = getTypeIndex(CTy);
 2559   TypeIndex TI;
 2625   TypeIndex TI = Var.UseReferenceType
lib/CodeGen/AsmPrinter/CodeViewDebug.h
  225   codeview::TypeIndex getFuncIdForSubprogram(const DISubprogram *SP);
  251   DenseMap<std::pair<const DINode *, const DIType *>, codeview::TypeIndex>
  256   DenseMap<const DICompositeType *, codeview::TypeIndex> CompleteTypeIndices;
  265   codeview::TypeIndex VBPType;
  377   codeview::TypeIndex getTypeIndex(const DIType *Ty,
  380   codeview::TypeIndex
  384   codeview::TypeIndex getTypeIndexForReferenceTo(const DIType *Ty);
  386   codeview::TypeIndex getMemberFunctionType(const DISubprogram *SP,
  389   codeview::TypeIndex getScopeIndex(const DIScope *Scope);
  391   codeview::TypeIndex getVBPTypeIndex();
  395   void addUDTSrcLine(const DIType *Ty, codeview::TypeIndex TI);
  397   codeview::TypeIndex lowerType(const DIType *Ty, const DIType *ClassTy);
  398   codeview::TypeIndex lowerTypeAlias(const DIDerivedType *Ty);
  399   codeview::TypeIndex lowerTypeArray(const DICompositeType *Ty);
  400   codeview::TypeIndex lowerTypeBasic(const DIBasicType *Ty);
  401   codeview::TypeIndex lowerTypePointer(
  404   codeview::TypeIndex lowerTypeMemberPointer(
  407   codeview::TypeIndex lowerTypeModifier(const DIDerivedType *Ty);
  408   codeview::TypeIndex lowerTypeFunction(const DISubroutineType *Ty);
  409   codeview::TypeIndex lowerTypeVFTableShape(const DIDerivedType *Ty);
  410   codeview::TypeIndex lowerTypeMemberFunction(
  414   codeview::TypeIndex lowerTypeEnum(const DICompositeType *Ty);
  415   codeview::TypeIndex lowerTypeClass(const DICompositeType *Ty);
  416   codeview::TypeIndex lowerTypeUnion(const DICompositeType *Ty);
  423   codeview::TypeIndex getCompleteTypeIndex(const DIType *Ty);
  425   codeview::TypeIndex lowerCompleteTypeClass(const DICompositeType *Ty);
  426   codeview::TypeIndex lowerCompleteTypeUnion(const DICompositeType *Ty);
  438   std::tuple<codeview::TypeIndex, codeview::TypeIndex, unsigned, bool>
  438   std::tuple<codeview::TypeIndex, codeview::TypeIndex, unsigned, bool>
  442   codeview::TypeIndex recordTypeIndexForDINode(const DINode *Node,
  443                                                codeview::TypeIndex TI,
lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp
   30 TypeIndex AppendingTypeTableBuilder::nextTypeIndex() const {
   31   return TypeIndex::fromArrayIndex(SeenRecords.size());
   39 Optional<TypeIndex> AppendingTypeTableBuilder::getFirst() {
   43   return TypeIndex(TypeIndex::FirstNonSimpleIndex);
   46 Optional<TypeIndex> AppendingTypeTableBuilder::getNext(TypeIndex Prev) {
   46 Optional<TypeIndex> AppendingTypeTableBuilder::getNext(TypeIndex Prev) {
   52 CVType AppendingTypeTableBuilder::getType(TypeIndex Index){
   56 StringRef AppendingTypeTableBuilder::getTypeName(TypeIndex Index) {
   60 bool AppendingTypeTableBuilder::contains(TypeIndex Index) {
   77 TypeIndex
   79   TypeIndex NewTI = nextTypeIndex();
   87 TypeIndex
   89   TypeIndex TI;
lib/DebugInfo/CodeView/CVTypeVisitor.cpp
   77   Error visitTypeRecord(CVType &Record, TypeIndex Index);
  123 Error CVTypeVisitor::visitTypeRecord(CVType &Record, TypeIndex Index) {
  159   Optional<TypeIndex> I = Types.getFirst();
  218 Error llvm::codeview::visitTypeRecord(CVType &Record, TypeIndex Index,
lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
  127 Error CodeViewRecordIO::mapInteger(TypeIndex &TypeInd, const Twine &Comment) {
lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp
  150     uint32_t OffBegin, uint32_t OffEnd, Optional<TypeIndex> RefersTo) {
  173 std::vector<CVType> ContinuationRecordBuilder::end(TypeIndex Index) {
  231   Optional<TypeIndex> RefersTo;
lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp
  115 void DebugInlineeLinesSubsection::addInlineSite(TypeIndex FuncId,
lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp
   30 TypeIndex GlobalTypeTableBuilder::nextTypeIndex() const {
   31   return TypeIndex::fromArrayIndex(SeenRecords.size());
   41 Optional<TypeIndex> GlobalTypeTableBuilder::getFirst() {
   45   return TypeIndex(TypeIndex::FirstNonSimpleIndex);
   48 Optional<TypeIndex> GlobalTypeTableBuilder::getNext(TypeIndex Prev) {
   48 Optional<TypeIndex> GlobalTypeTableBuilder::getNext(TypeIndex Prev) {
   54 CVType GlobalTypeTableBuilder::getType(TypeIndex Index) {
   59 StringRef GlobalTypeTableBuilder::getTypeName(TypeIndex Index) {
   63 bool GlobalTypeTableBuilder::contains(TypeIndex Index) {
   87 TypeIndex GlobalTypeTableBuilder::insertRecordBytes(ArrayRef<uint8_t> Record) {
   98 TypeIndex
  100   TypeIndex TI;
lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp
   83 uint32_t LazyRandomTypeCollection::getOffsetOfType(TypeIndex Index) {
   90 CVType LazyRandomTypeCollection::getType(TypeIndex Index) {
  100 Optional<CVType> LazyRandomTypeCollection::tryGetType(TypeIndex Index) {
  113 StringRef LazyRandomTypeCollection::getTypeName(TypeIndex Index) {
  115     return TypeIndex::simpleTypeName(Index);
  135 bool LazyRandomTypeCollection::contains(TypeIndex Index) {
  150 Error LazyRandomTypeCollection::ensureTypeExists(TypeIndex TI) {
  157 void LazyRandomTypeCollection::ensureCapacityFor(TypeIndex Index) {
  170 Error LazyRandomTypeCollection::visitRangeForType(TypeIndex TI) {
  183   TypeIndex TIB = Prev->Type;
  193   TypeIndex TIE;
  195     TIE = TypeIndex::fromArrayIndex(capacity());
  204 Optional<TypeIndex> LazyRandomTypeCollection::getFirst() {
  205   TypeIndex TI = TypeIndex::fromArrayIndex(0);
  205   TypeIndex TI = TypeIndex::fromArrayIndex(0);
  213 Optional<TypeIndex> LazyRandomTypeCollection::getNext(TypeIndex Prev) {
  213 Optional<TypeIndex> LazyRandomTypeCollection::getNext(TypeIndex Prev) {
  225 Error LazyRandomTypeCollection::fullScanForType(TypeIndex TI) {
  229   TypeIndex CurrentTI = TypeIndex::fromArrayIndex(0);
  229   TypeIndex CurrentTI = TypeIndex::fromArrayIndex(0);
  264 void LazyRandomTypeCollection::visitRange(TypeIndex Begin, uint32_t BeginOffset,
  265                                           TypeIndex End) {
lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp
   30 TypeIndex MergingTypeTableBuilder::nextTypeIndex() const {
   31   return TypeIndex::fromArrayIndex(SeenRecords.size());
   41 Optional<TypeIndex> MergingTypeTableBuilder::getFirst() {
   45   return TypeIndex(TypeIndex::FirstNonSimpleIndex);
   48 Optional<TypeIndex> MergingTypeTableBuilder::getNext(TypeIndex Prev) {
   48 Optional<TypeIndex> MergingTypeTableBuilder::getNext(TypeIndex Prev) {
   54 CVType MergingTypeTableBuilder::getType(TypeIndex Index) {
   59 StringRef MergingTypeTableBuilder::getTypeName(TypeIndex Index) {
   63 bool MergingTypeTableBuilder::contains(TypeIndex Index) {
   90 TypeIndex MergingTypeTableBuilder::insertRecordAs(hash_code Hash,
  105   TypeIndex ActualTI = Result.first->second;
  110 TypeIndex
  115 TypeIndex
  117   TypeIndex TI;
lib/DebugInfo/CodeView/RecordName.cpp
   25   TypeIndex CurrentTypeIndex = TypeIndex::None();
   25   TypeIndex CurrentTypeIndex = TypeIndex::None();
   38   Error visitTypeBegin(CVType &Record, TypeIndex Index) override;
   54 Error TypeNameComputer::visitTypeBegin(CVType &Record, TypeIndex Index) {
  249                                             TypeIndex Index) {
lib/DebugInfo/CodeView/SymbolDumper.cpp
   54   void printTypeIndex(StringRef FieldName, TypeIndex TI);
   99 void CVSymbolDumperImpl::printTypeIndex(StringRef FieldName, TypeIndex TI) {
  595   for (auto FuncID : Caller.Indices)
lib/DebugInfo/CodeView/TypeDumpVisitor.cpp
  161 void TypeDumpVisitor::printTypeIndex(StringRef FieldName, TypeIndex TI) const {
  165 void TypeDumpVisitor::printItemIndex(StringRef FieldName, TypeIndex TI) const {
  170   return visitTypeBegin(Record, TypeIndex::fromArrayIndex(TpiTypes.size()));
  173 Error TypeDumpVisitor::visitTypeBegin(CVType &Record, TypeIndex Index) {
  429   for (auto Arg : Args.getArgs()) {
lib/DebugInfo/CodeView/TypeHashing.cpp
   50     auto RefData = RecordData.slice(Ref.Offset, Ref.Count * sizeof(TypeIndex));
   53     ArrayRef<TypeIndex> Indices(
   55     for (TypeIndex TI : Indices) {
   59         BytesToHash = makeArrayRef(IndexBytes, sizeof(TypeIndex));
   72     Off = Ref.Offset + Ref.Count * sizeof(TypeIndex);
lib/DebugInfo/CodeView/TypeIndex.cpp
   70 StringRef TypeIndex::simpleTypeName(TypeIndex TI) {
   76   if (TI == TypeIndex::NullptrT())
   93                                     TypeIndex TI, TypeCollection &Types) {
   97       TypeName = TypeIndex::simpleTypeName(TI);
lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
  463                                        SmallVectorImpl<TypeIndex> &Indices) {
  474     FixedStreamArray<TypeIndex> Run;
  481                                          SmallVectorImpl<TypeIndex> &Indices) {
  486                                          SmallVectorImpl<TypeIndex> &Indices) {
  516     ArrayRef<uint8_t> RecordData, SmallVectorImpl<TypeIndex> &Indices) {
lib/DebugInfo/CodeView/TypeRecordHelpers.cpp
   47 TypeIndex llvm::codeview::getModifiedType(const CVType &CVT) {
   49   SmallVector<TypeIndex, 1> Refs;
lib/DebugInfo/CodeView/TypeRecordMapping.cpp
  212 Error TypeRecordMapping::visitTypeBegin(CVType &CVR, TypeIndex Index) {
lib/DebugInfo/CodeView/TypeStreamMerger.cpp
   23 static inline size_t slotForIndex(TypeIndex Idx) {
   25   return Idx.getIndex() - TypeIndex::FirstNonSimpleIndex;
   64   explicit TypeStreamMerger(SmallVectorImpl<TypeIndex> &SourceToDest)
   74   static const TypeIndex Untranslated;
   81                        ArrayRef<TypeIndex> TypeSourceToDest,
   93                        ArrayRef<TypeIndex> TypeSourceToDest,
  107   void addMapping(TypeIndex Idx);
  109   inline bool remapTypeIndex(TypeIndex &Idx) {
  121   inline bool remapItemIndex(TypeIndex &Idx) {
  137   inline bool remapIndex(TypeIndex &Idx, ArrayRef<TypeIndex> Map) {
  137   inline bool remapIndex(TypeIndex &Idx, ArrayRef<TypeIndex> Map) {
  144   inline bool remapIndexSimple(TypeIndex &Idx, ArrayRef<TypeIndex> Map) const {
  144   inline bool remapIndexSimple(TypeIndex &Idx, ArrayRef<TypeIndex> Map) const {
  160   bool remapIndexFallback(TypeIndex &Idx, ArrayRef<TypeIndex> Map);
  160   bool remapIndexFallback(TypeIndex &Idx, ArrayRef<TypeIndex> Map);
  176   TypeIndex CurIndex{TypeIndex::FirstNonSimpleIndex};
  176   TypeIndex CurIndex{TypeIndex::FirstNonSimpleIndex};
  188   ArrayRef<TypeIndex> TypeLookup;
  192   SmallVectorImpl<TypeIndex> &IndexMap;
  203 const TypeIndex TypeStreamMerger::Untranslated(SimpleTypeKind::NotTranslated);
  220 void TypeStreamMerger::addMapping(TypeIndex Idx) {
  231 bool TypeStreamMerger::remapIndexFallback(TypeIndex &Idx,
  232                                           ArrayRef<TypeIndex> Map) {
  264                                        ArrayRef<TypeIndex> TypeSourceToDest,
  299                                        ArrayRef<TypeIndex> TypeSourceToDest,
  339     CurIndex = TypeIndex(TypeIndex::FirstNonSimpleIndex);
  371   TypeIndex DestIdx = Untranslated;
  414     TypeIndex *DestTIs =
  418       TypeIndex &TI = DestTIs[I];
  429                                        SmallVectorImpl<TypeIndex> &SourceToDest,
  436                                      ArrayRef<TypeIndex> TypeSourceToDest,
  437                                      SmallVectorImpl<TypeIndex> &SourceToDest,
  445     SmallVectorImpl<TypeIndex> &SourceToDest, const CVTypeArray &IdsAndTypes,
  453     SmallVectorImpl<TypeIndex> &SourceToDest, const CVTypeArray &IdsAndTypes,
  461                                        SmallVectorImpl<TypeIndex> &SourceToDest,
  470                                      ArrayRef<TypeIndex> Types,
  471                                      SmallVectorImpl<TypeIndex> &SourceToDest,
lib/DebugInfo/CodeView/TypeTableCollection.cpp
   23 Optional<TypeIndex> TypeTableCollection::getFirst() {
   26   return TypeIndex::fromArrayIndex(0);
   29 Optional<TypeIndex> TypeTableCollection::getNext(TypeIndex Prev) {
   29 Optional<TypeIndex> TypeTableCollection::getNext(TypeIndex Prev) {
   37 CVType TypeTableCollection::getType(TypeIndex Index) {
   42 StringRef TypeTableCollection::getTypeName(TypeIndex Index) {
   44     return TypeIndex::simpleTypeName(Index);
   54 bool TypeTableCollection::contains(TypeIndex Index) {
lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp
   27   Optional<TypeIndex> TI = Types.getFirst();
   36       TypeIndex ModifiedTI = getModifiedType(CVT);
   51                                  std::vector<codeview::TypeIndex> Indices)
lib/DebugInfo/PDB/Native/NativeTypeArray.cpp
   20                                  codeview::TypeIndex TI,
lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp
   58   Optional<TypeIndex> ContinuationIndex;
  116                                TypeIndex Index, EnumRecord Record)
  184   codeview::TypeIndex Underlying = Record->getUnderlyingType();
lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp
   78                                              codeview::TypeIndex Index,
   84     NativeSession &Session, SymIndexId Id, codeview::TypeIndex Index,
  101 void NativeTypeFunctionSig::initializeArgList(codeview::TypeIndex ArgListTI) {
  161   TypeIndex ReturnTI =
lib/DebugInfo/PDB/Native/NativeTypePointer.cpp
   20                                      codeview::TypeIndex TI)
   27                                      codeview::TypeIndex TI,
  102   TypeIndex Referent = Record ? Record->ReferentType : TI.makeDirect();
lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp
   20                              codeview::TypeIndex TI, codeview::ClassRecord CR)
   25                              codeview::TypeIndex TI, codeview::UnionRecord UR)
lib/DebugInfo/PDB/Native/NativeTypeVTShape.cpp
    8                                      codeview::TypeIndex TI,
lib/DebugInfo/PDB/Native/SymbolCache.cpp
   96 SymIndexId SymbolCache::createSimpleType(TypeIndex Index,
  111 SymbolCache::createSymbolForModifiedType(codeview::TypeIndex ModifierTI,
  142 SymIndexId SymbolCache::findSymbolByTypeIndex(codeview::TypeIndex Index) {
  166     Expected<TypeIndex> EFD = Tpi->findFullDeclForForwardRef(Index);
lib/DebugInfo/PDB/Native/TpiStream.cpp
  152   TypeIndex TIB{Header->TypeIndexBegin};
  153   TypeIndex TIE{Header->TypeIndexEnd};
  160 std::vector<TypeIndex> TpiStream::findRecordsByName(StringRef Name) const {
  168   std::vector<TypeIndex> Result;
  169   for (TypeIndex TI : HashMap[Bucket]) {
  179 Expected<TypeIndex>
  180 TpiStream::findFullDeclForForwardRef(TypeIndex ForwardRefTI) const {
  194   for (TypeIndex TI : HashMap[BucketIdx]) {
  221 codeview::CVType TpiStream::getType(codeview::TypeIndex Index) {
lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp
   51         {codeview::TypeIndex(codeview::TypeIndex::FirstNonSimpleIndex +
   72   H->TypeIndexBegin = codeview::TypeIndex::FirstNonSimpleIndex;
lib/ObjectYAML/CodeViewYAMLTypes.cpp
  171 void ScalarTraits<TypeIndex>::output(const TypeIndex &S, void *,
  177                                          TypeIndex &S) {
tools/lld/COFF/PDB.cpp
  574 static bool remapTypeIndex(TypeIndex &ti, ArrayRef<TypeIndex> typeIndexMap) {
  574 static bool remapTypeIndex(TypeIndex &ti, ArrayRef<TypeIndex> typeIndexMap) {
  590     unsigned byteSize = ref.Count * sizeof(TypeIndex);
  595     ArrayRef<TypeIndex> typeOrItemMap = indexMap.tpiMap;
  600     MutableArrayRef<TypeIndex> tIs(
  602     for (TypeIndex &ti : tIs) {
  677     TypeIndex *ti =
  685       SmallVector<TypeIndex, 2> indices;
 1079     TypeIndex inlinee = line.Header->Inlinee;
 1083     ArrayRef<TypeIndex> typeOrItemMap =
tools/lld/COFF/TypeMerger.h
   56   llvm::SmallVector<llvm::codeview::TypeIndex, 0> tpiMap;
   57   llvm::SmallVector<llvm::codeview::TypeIndex, 0> ipiMap;
tools/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.h
   71   llvm::SmallVector<llvm::codeview::TypeIndex, 5> m_build_info;
tools/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.cpp
   76 static std::pair<size_t, bool> GetIntegralTypeInfo(TypeIndex ti,
  222     TypeIndex underlying_ti, TpiStream &tpi, const llvm::APSInt &constant,
tools/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.h
   39     llvm::codeview::TypeIndex underlying_ti, llvm::pdb::TpiStream &tpi,
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
  108 static bool IsCVarArgsFunction(llvm::ArrayRef<TypeIndex> args) {
  111   return args.back() == TypeIndex::None();
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h
   91   using TypeIndex = llvm::codeview::TypeIndex;
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbSymUid.h
   72   PdbTypeSymId(llvm::codeview::TypeIndex index, bool is_ipi = false)
   76   llvm::codeview::TypeIndex index;
   85   llvm::codeview::TypeIndex index;
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp
  421 TypeIndex lldb_private::npdb::GetFieldListIndex(CVType cvt) {
  445 TypeIndex lldb_private::npdb::LookThroughModifierRecord(CVType modifier) {
  850   TypeIndex index = id.index;
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.h
  105   llvm::codeview::TypeIndex type;
  137 llvm::codeview::TypeIndex GetFieldListIndex(llvm::codeview::CVType cvt);
  138 llvm::codeview::TypeIndex
tools/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
  406   if (proc.FunctionType == TypeIndex::None())
  486 lldb::TypeSP SymbolFileNativePDB::CreateSimpleType(TypeIndex ti,
  489   if (ti == TypeIndex::NullptrT()) {
  749   TypeIndex ti;
  855 lldb::TypeSP SymbolFileNativePDB::GetOrCreateType(TypeIndex ti) {
 1269   std::vector<TypeIndex> matches = m_index->tpi().findRecordsByName(name);
 1273   for (TypeIndex ti : matches) {
tools/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h
  166   lldb::TypeSP CreateSimpleType(llvm::codeview::TypeIndex ti, CompilerType ct);
  193   lldb::TypeSP GetOrCreateType(llvm::codeview::TypeIndex ti);
tools/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
   53     llvm::codeview::TypeIndex ti, llvm::codeview::MemberAccess access,
   72 void UdtRecordCompleter::AddMethod(llvm::StringRef name, TypeIndex type_idx,
  150   TypeIndex ti(data_member.Type);
  188   TypeIndex method_list_idx = overloaded.MethodList;
tools/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h
   71       llvm::codeview::TypeIndex ti, llvm::codeview::MemberAccess access,
   73   void AddMethod(llvm::StringRef name, llvm::codeview::TypeIndex type_idx,
tools/llvm-pdbutil/BytesOutputStyle.cpp
  309     TypeIndex TI(Id);
tools/llvm-pdbutil/DumpOutputStyle.cpp
  705   for (Optional<TypeIndex> TI = Types.getFirst(); TI; TI = Types.getNext(*TI)) {
 1294                         ArrayRef<TypeIndex> Indices,
 1295                         std::map<TypeIndex, CVType> &DepSet) {
 1296   SmallVector<TypeIndex, 4> DepList;
 1297   for (const auto &I : Indices) {
 1298     TypeIndex TI(I);
 1317   uint32_t Width = NumDigits(TypeIndex::FirstNonSimpleIndex + NumTypeRecords);
 1331                                   TpiStream &Stream, ArrayRef<TypeIndex> TiList,
 1334       NumDigits(TypeIndex::FirstNonSimpleIndex + Stream.getNumTypeRecords());
 1343     std::map<TypeIndex, CVType> DepSet;
 1358     for (const auto &I : TiList) {
 1359       TypeIndex TI(I);
 1409       TypeIndex TI(TypeIndex::FirstNonSimpleIndex);
 1409       TypeIndex TI(TypeIndex::FirstNonSimpleIndex);
 1484       std::vector<TypeIndex> TiList(Indices.begin(), Indices.end());
 1516         TypeIndex TI(A.second);
 1622   for (Optional<TypeIndex> TI = Types.getFirst(); TI; TI = Types.getNext(*TI)) {
tools/llvm-pdbutil/LinePrinter.h
   44   template <typename... Ts> void formatLine(const char *Fmt, Ts &&... Items) {
   45     printLine(formatv(Fmt, std::forward<Ts>(Items)...));
   47   template <typename... Ts> void format(const char *Fmt, Ts &&... Items) {
   48     print(formatv(Fmt, std::forward<Ts>(Items)...));
tools/llvm-pdbutil/MinimalSymbolDumper.cpp
  366 std::string MinimalSymbolDumper::typeOrIdIndex(codeview::TypeIndex TI,
  379 std::string MinimalSymbolDumper::idIndex(codeview::TypeIndex TI) const {
  383 std::string MinimalSymbolDumper::typeIndex(TypeIndex TI) const {
  843   for (const auto &I : Caller.Indices) {
tools/llvm-pdbutil/MinimalSymbolDumper.h
   49   std::string typeOrIdIndex(codeview::TypeIndex TI, bool IsType) const;
   51   std::string typeIndex(codeview::TypeIndex TI) const;
   52   std::string idIndex(codeview::TypeIndex TI) const;
tools/llvm-pdbutil/MinimalTypeDumper.cpp
   33                                       TypeIndex CurrentTypeIndex) {
   40     Expected<TypeIndex> ETI =
  220 Error MinimalTypeDumpVisitor::visitTypeBegin(CVType &Record, TypeIndex Index) {
  279 StringRef MinimalTypeDumpVisitor::getTypeName(TypeIndex TI) const {
  308   for (auto I : Indices)
  323   for (auto I : Indices)
  493   for (auto I : Indices)
tools/llvm-pdbutil/MinimalTypeDumper.h
   38                        codeview::TypeIndex Index) override;
   54   StringRef getTypeName(codeview::TypeIndex TI) const;
   63   codeview::TypeIndex CurrentTypeIndex;
tools/llvm-pdbutil/TypeReferenceTracker.cpp
   25   for (Optional<TypeIndex> TI = Types.getFirst(); TI; TI = Types.getNext(*TI))
   88 void TypeReferenceTracker::addOneTypeRef(TiRefKind RefKind, TypeIndex RefTI) {
  114     ArrayRef<TypeIndex> TIs(
  120     for (TypeIndex RefTI : TIs)
  128     TypeIndex RefTI;
tools/llvm-pdbutil/TypeReferenceTracker.h
   37   bool isTypeReferenced(codeview::TypeIndex TI) {
   52   void addOneTypeRef(codeview::TiRefKind RefKind, codeview::TypeIndex RefTI);
   60   SmallVector<std::pair<codeview::TiRefKind, codeview::TypeIndex>, 10>
tools/llvm-pdbutil/llvm-pdbutil.cpp
 1302     SmallVector<TypeIndex, 128> TypeMap;
 1303     SmallVector<TypeIndex, 128> IdMap;
tools/llvm-readobj/COFFDumper.cpp
  127   StringRef getTypeName(TypeIndex Ty);
  130   void printTypeIndex(StringRef FieldName, TypeIndex TI) {
 1272       SmallVector<TypeIndex, 128> SourceToDest;
unittests/DebugInfo/CodeView/RandomAccessVisitorTest.cpp
   66   virtual Error visitTypeBegin(CVType &CVR, TypeIndex Index) {
   81   std::vector<TypeIndex> Indices;
   98       AR.ElementType = TypeIndex::Int32();
   99       AR.IndexType = TypeIndex::UInt32();
  130     TypeIndex TI = TypeIndex::fromArrayIndex(Index);
  130     TypeIndex TI = TypeIndex::fromArrayIndex(Index);
  140     TypeIndex TI = TypeIndex::fromArrayIndex(GlobalArrayIndex);
  140     TypeIndex TI = TypeIndex::fromArrayIndex(GlobalArrayIndex);
  162     std::vector<TypeIndex> Indices;
  213     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  213     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  242     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  242     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  271     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  271     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  302     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  302     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  332     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  332     TypeIndex TI = TypeIndex::fromArrayIndex(I);
  358   Class.DerivationList = TypeIndex::fromArrayIndex(0);
  359   Class.FieldList = TypeIndex::fromArrayIndex(0);
  360   Class.VTableShape = TypeIndex::fromArrayIndex(0);
  361   TypeIndex IndexZero = Builder.writeLeafType(Class);
  365   Modifier.ModifiedType = TypeIndex::fromArrayIndex(0);
  367   TypeIndex IndexOne = Builder.writeLeafType(Modifier);
unittests/DebugInfo/CodeView/TypeHashingTest.cpp
   17 static TypeIndex createPointerRecord(AppendingTypeTableBuilder &Builder,
   18                                      TypeIndex TI) {
   26 static TypeIndex createArgListRecord(AppendingTypeTableBuilder &Builder,
   27                                      TypeIndex Q, TypeIndex R) {
   27                                      TypeIndex Q, TypeIndex R) {
   34 static TypeIndex createProcedureRecord(AppendingTypeTableBuilder &Builder,
   35                                        uint32_t ParamCount, TypeIndex Return,
   36                                        TypeIndex ArgList) {
   47                                  TypeIndex TI) {
   64   TypeIndex CharStar(SimpleTypeKind::SignedCharacter,
   71   TypeIndex CharP(SimpleTypeKind::SignedCharacter, SimpleTypeMode::NearPointer);
   72   TypeIndex IntP(SimpleTypeKind::Int32, SimpleTypeMode::NearPointer);
   73   TypeIndex DoubleP(SimpleTypeKind::Float64, SimpleTypeMode::NearPointer);
   78   TypeIndex CharPP[2];
   79   TypeIndex IntPP[2];
   80   TypeIndex IntPPP[2];
   81   TypeIndex DoublePP[2];
   82   TypeIndex Args[2];
   83   TypeIndex Proc[2];
unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp
   40   bool checkTypeReferences(uint32_t RecordIndex, Indices &&... TIs) const {
   54                                    std::forward<Indices>(TIs)...);
   91                              TypeIndex TI) const {
   97       ArrayRef<TypeIndex> Indices(
  115                                TypeIndex TI, Indices &&... Rest) const {
  115                                TypeIndex TI, Indices &&... Rest) const {
  120                                              std::forward<Indices>(Rest)...);
  177   std::vector<TypeIndex> Ids = {TypeIndex(6), TypeIndex(7), TypeIndex(8)};
  181   std::vector<TypeIndex> Ids = {TypeIndex(9), TypeIndex(10), TypeIndex(11)};
  196   std::vector<TypeIndex> Ids = {TypeIndex(23), TypeIndex(24), TypeIndex(25)};
  214   const TypeIndex T1{40};
  215   const TypeIndex T2{41};
  216   const TypeIndex T3{42};
  217   const TypeIndex T4{43};
  247   const TypeIndex T1{50};
  248   const TypeIndex T2{51};
  249   const TypeIndex T3{52};
  250   const TypeIndex T4{53};
  539   GS.FunctionType = TypeIndex::Float32();
  541   LS.FunctionType = TypeIndex::Float64();
  549   DS.Type = TypeIndex::Float32();
  556   Reg.Index = TypeIndex::UInt32();
  584   P.StartTypeIndex = TypeIndex::FirstNonSimpleIndex;
usr/include/c++/7.4.0/bits/algorithmfwd.h
  369     const _Tp&
  370     max(const _Tp&, const _Tp&);
  370     max(const _Tp&, const _Tp&);
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)
  475 	{ __a.construct(__p, std::forward<_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/ptr_traits.h
  126       typedef _Tp* pointer;
  128       typedef _Tp  element_type;
  141       pointer_to(__make_not_void<element_type>& __r) noexcept
  141       pointer_to(__make_not_void<element_type>& __r) noexcept
usr/include/c++/7.4.0/bits/stl_algo.h
 2040 		  const _Tp& __val, _Compare __comp)
 2108 		const _Tp& __val, _Compare __comp)
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
  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>;
  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)
  332        explicit pair(const _T1& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  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)
  522     constexpr pair<typename __decay_and_strip<_T1>::__type,
  524     make_pair(_T1&& __x, _T2&& __y)
  526       typedef typename __decay_and_strip<_T1>::__type __ds_type1;
  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>&)
  644 				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);
 1561 	_Up*
 1562 	_M_data_ptr(_Up* __ptr) const _GLIBCXX_NOEXCEPT
usr/include/c++/7.4.0/bits/unique_ptr.h
  824     make_unique(_Args&&... __args)
usr/include/c++/7.4.0/bits/vector.tcc
  101 				     std::forward<_Args>(__args)...);
  105 	  _M_realloc_insert(end(), std::forward<_Args>(__args)...);
  418 				   std::forward<_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)...); }
  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
   56     struct __is_empty_non_tuple : is_empty<_Tp> { };
  125       constexpr _Head_base(const _Head& __h)
  132         constexpr _Head_base(_UHead&& __h)
  133 	: _M_head_impl(std::forward<_UHead>(__h)) { }
  159       static constexpr _Head&
  162       static constexpr const _Head&
  165       _Head _M_head_impl;
  186     : public _Tuple_impl<_Idx + 1, _Tail...>,
  187       private _Head_base<_Idx, _Head>
  191       typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited;
  192       typedef _Head_base<_Idx, _Head> _Base;
  194       static constexpr _Head&
  197       static constexpr const _Head&
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  227 	_Base(std::forward<_Head>(_M_head(__in))) { }
  230         constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in)
  235         constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
  235         constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
  242 	_Tuple_impl(allocator_arg_t __tag, const _Alloc& __a)
  248 		    const _Head& __head, const _Tail&... __tail)
  248 		    const _Head& __head, const _Tail&... __tail)
  322 	  _M_head(*this) = std::forward<_UHead>
  323 	    (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in));
  323 	    (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in));
  325 	    (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in));
  325 	    (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in));
  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;
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  508       return  __not_<is_same<tuple<_Elements...>,
  556     class tuple : public _Tuple_impl<0, _Elements...>
  558       typedef _Tuple_impl<0, _Elements...> _Inherited;
  598             _Elements...>;
  608         constexpr tuple(const _Elements&... __elements)
  619       explicit constexpr tuple(const _Elements&... __elements)
  628                       _Elements...>;
  636                       _Elements...>;
  646         constexpr tuple(_UElements&&... __elements)
  668             _Elements...>;
  730 	      const _Elements&... __elements)
  741                        const _Elements&... __elements)
  853         operator=(const tuple<_UElements...>& __in)
  863         operator=(tuple<_UElements...>&& __in)
  947         constexpr tuple(const _T1& __a1, const _T2& __a2)
  956         explicit constexpr tuple(const _T1& __a1, const _T2& __a2)
  971         constexpr tuple(_U1&& __a1, _U2&& __a2)
 1066 	tuple(allocator_arg_t __tag, const _Alloc& __a)
 1078 	      const _T1& __a1, const _T2& __a2)
 1090 	      const _T1& __a1, const _T2& __a2)
 1241         operator=(const pair<_U1, _U2>& __in)
 1250         operator=(pair<_U1, _U2>&& __in)
 1253 	  this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second);
 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...>>&&
 1448     make_tuple(_Elements&&... __args)
 1588     constexpr tuple<_Elements&...>
 1589     tie(_Elements&... __args) noexcept
 1620       operator=(const _Tp&) const
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
  594     : public __or_<is_arithmetic<_Tp>, is_void<_Tp>,
  594     : public __or_<is_arithmetic<_Tp>, is_void<_Tp>,
  595 		   is_null_pointer<_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>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1358     : public __is_nt_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; };