Go to the documentation of this file.
21 return Name ==
"<unnamed-tag>" ||
Name ==
"__unnamed" ||
22 Name.endswith(
"::<unnamed-tag>") ||
Name.endswith(
"::__unnamed");
35 if (!ForwardRef && !
Scoped && !IsAnon)
72 Scoped ? Deserialized.getUniqueName() : Deserialized.getName();
89 switch (
Type.kind()) {
93 return getTagRecordHashForUdt<ClassRecord>(
Type);
95 return getTagRecordHashForUdt<UnionRecord>(
Type);
97 return getTagRecordHashForUdt<EnumRecord>(
Type);
99 assert(
false &&
"Type is not a tag record!");
101 return make_error<StringError>(
"Invalid record type",
106 switch (Rec.
kind()) {
110 return getHashForUdt<ClassRecord>(Rec);
112 return getHashForUdt<UnionRecord>(Rec);
114 return getHashForUdt<EnumRecord>(Rec);
116 case LF_UDT_SRC_LINE:
117 return getSourceLineHash<UdtSourceLineRecord>(Rec);
118 case LF_UDT_MOD_SRC_LINE:
119 return getSourceLineHash<UdtModSourceLineRecord>(Rec);
static Expected< TagRecordHash > getTagRecordHashForUdt(const CVType &Rec)
This is an optimization pass for GlobalISel generic memory operations.
void update(ArrayRef< uint8_t > Data)
StringRef getUniqueName() const
void write32le(void *P, uint32_t V)
The instances of the Type class are immutable: once they are created, they are never changed.
Tagged union holding either a T or a Error.
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
Expected< TagRecordHash > hashTagRecord(const codeview::CVType &Type)
Given a CVType referring to a class, structure, union, or enum, compute the hash of its forward decl ...
static bool isAnonymous(StringRef Name)
StringRef getName() const
compiles ldr LCPI1_0 ldr ldr mov lsr tst moveq r1 ldr LCPI1_1 and r0 bx lr It would be better to do something like to fold the shift into the conditional move
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Expected< uint32_t > hashTypeRecord(const llvm::codeview::CVType &Type)
StringRef - Represent a constant reference to a string, i.e.
std::error_code inconvertibleErrorCode()
The value returned by this function can be returned from convertToErrorCode for Error values where no...
ArrayRef< uint8_t > data() const
ClassOptions getOptions() const
static Error deserializeAs(CVType &CVT, T &Record)
uint32_t hashBufferV8(ArrayRef< uint8_t > Data)
static Expected< uint32_t > getSourceLineHash(const CVType &Rec)
static uint32_t getHashForUdt(const TagRecord &Rec, ArrayRef< uint8_t > FullRecord)
uint32_t hashStringV1(StringRef Str)