13 using namespace llvm::codeview;
16 struct SimpleTypeEntry {
75 CVUDTNames.push_back(Name);
76 TypeRecords.push_back(Data);
81 return TypeNameStorage.
save(TypeName);
96 return SimpleTypeName.Name;
99 return "<unknown simple type>";
103 if (I < CVUDTNames.size())
104 return CVUDTNames[I];
106 return "<unknown UDT>";
111 return I < CVUDTNames.size();
StringRef getTypeName(TypeIndex Index) const
StringRef saveTypeName(StringRef TypeName)
Saves the name in a StringSet and creates a stable StringRef.
TypeIndex getNextTypeIndex() const
Gets the type index for the next type record.
bool containsTypeIndex(TypeIndex Index) const
static const uint32_t FirstNonSimpleIndex
void recordType(StringRef Name, CVType Data)
Records the name of a type, and reserves its type index.
uint32_t getIndex() const
static const SimpleTypeEntry SimpleTypeNames[]
The names here all end in "*".
SimpleTypeKind getSimpleKind() const
StringRef save(const char *S)
SimpleTypeMode getSimpleMode() const
StringRef - Represent a constant reference to a string, i.e.
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE StringRef drop_back(size_t N=1) const
Return a StringRef equal to 'this' but with the last N elements dropped.