File indexing completed on 2026-05-10 08:43:40
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLVM_DEBUGINFO_CODEVIEW_TYPETABLECOLLECTION_H
0010 #define LLVM_DEBUGINFO_CODEVIEW_TYPETABLECOLLECTION_H
0011
0012 #include "llvm/DebugInfo/CodeView/TypeCollection.h"
0013 #include "llvm/Support/StringSaver.h"
0014
0015 #include <vector>
0016
0017 namespace llvm {
0018 namespace codeview {
0019
0020 class TypeTableCollection : public TypeCollection {
0021 public:
0022 explicit TypeTableCollection(ArrayRef<ArrayRef<uint8_t>> Records);
0023
0024 std::optional<TypeIndex> getFirst() override;
0025 std::optional<TypeIndex> getNext(TypeIndex Prev) override;
0026
0027 CVType getType(TypeIndex Index) override;
0028 StringRef getTypeName(TypeIndex Index) override;
0029 bool contains(TypeIndex Index) override;
0030 uint32_t size() override;
0031 uint32_t capacity() override;
0032 bool replaceType(TypeIndex &Index, CVType Data, bool Stabilize) override;
0033
0034 private:
0035 BumpPtrAllocator Allocator;
0036 StringSaver NameStorage;
0037 std::vector<StringRef> Names;
0038 ArrayRef<ArrayRef<uint8_t>> Records;
0039 };
0040 }
0041 }
0042
0043 #endif