16 using namespace llvm::codeview;
23 if (Record.
Type == LF_FIELDLIST) {
32 if (CVR.
Type == LF_FIELDLIST) {
34 IsInFieldList =
false;
60 Name =
"<field list>";
77 TypeName.append(ArgTypeName);
79 TypeName.append(
", ");
81 TypeName.push_back(
')');
122 TypeName.push_back(
' ');
123 TypeName.append(ArgListTypeName);
134 TypeName.push_back(
' ');
135 TypeName.append(ClassTypeName);
136 TypeName.append(
"::");
137 TypeName.append(ArgListTypeName);
161 TypeName.push_back(
' ');
162 TypeName.append(ClassName);
163 TypeName.append(
"::*");
168 TypeName.
append(
"const ");
170 TypeName.
append(
"volatile ");
172 TypeName.
append(
"__unaligned ");
183 if (!TypeName.
empty())
190 uint16_t Mods =
static_cast<uint16_t
>(Mod.
getModifiers());
195 TypeName.
append(
"const ");
197 TypeName.
append(
"volatile ");
199 TypeName.
append(
"__unaligned ");
200 TypeName.
append(ModifiedName);
StringRef getTypeName(TypeIndex Index) const
StringRef getName() const
TypeIndex getArgumentList() const
StringRef saveTypeName(StringRef TypeName)
Saves the name in a StringSet and creates a stable StringRef.
Error visitTypeEnd(CVType &Record) override
Error visitTypeBegin(CVType &Record) override
Paired begin/end actions for all types.
TypeIndex getClassType() const
StringRef getName() const
StringRef getString() const
bool isPointerToMember() const
StringRef getName() const
TypeIndex getReturnType() const
LLVM_NODISCARD bool empty() const
TypeIndex getContainingType() const
static Error visitKnownRecord(CVSymbol &Record, SymbolVisitorCallbacks &Callbacks)
static std::string utostr(uint64_t X, bool isNeg=false)
void recordType(StringRef Name, CVType Data)
Records the name of a type, and reserves its type index.
StringRef getName() const
TypeIndex getReturnType() const
Error visitMemberBegin(CVMemberRecord &Record) override
StringRef getName() const
void append(in_iter S, in_iter E)
Append from an iterator pair.
static Error visitKnownMember(CVMemberRecord &Record, TypeVisitorCallbacks &Callbacks)
StringRef getName() const
StringRef getName() const
LF_INDEX - Used to chain two large LF_FIELDLIST or LF_METHODLIST records together.
For method overload sets. LF_METHOD.
StringRef getName() const
uint32_t getEntryCount() const
ModifierOptions getModifiers() const
static ErrorSuccess success()
Create a success value.
PointerMode getMode() const
Error visitMemberEnd(CVMemberRecord &Record) override
StringRef getName() const
TypeIndex getModifiedType() const
ArrayRef< TypeIndex > getIndices() const
TypeIndex getArgumentList() const
StringRef getName() const
MemberPointerInfo getMemberInfo() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Lightweight error class with error context and mandatory checking.
StringRef - Represent a constant reference to a string, i.e.
TypeIndex getReferentType() const
StringRef getName() const
StringRef getName() const