22 return Name ==
"<unnamed-tag>" || Name ==
"__unnamed" ||
36 if (!ForwardRef && !Scoped && !IsAnon)
38 if (!ForwardRef && HasUniqueName && !IsAnon)
68 return TagRecordHash{std::move(Deserialized), ThisRecordHash, 0};
73 Scoped ? Deserialized.getUniqueName() : Deserialized.getName();
75 return TagRecordHash{std::move(Deserialized), FullHash, ThisRecordHash};
90 switch (Type.
kind()) {
94 return getTagRecordHashForUdt<ClassRecord>(Type);
96 return getTagRecordHashForUdt<UnionRecord>(Type);
98 return getTagRecordHashForUdt<EnumRecord>(Type);
100 assert(
false &&
"Type is not a tag record!");
102 return make_error<StringError>(
"Invalid record type",
107 switch (Rec.
kind()) {
111 return getHashForUdt<ClassRecord>(Rec);
113 return getHashForUdt<UnionRecord>(Rec);
115 return getHashForUdt<EnumRecord>(Rec);
117 case LF_UDT_SRC_LINE:
118 return getSourceLineHash<UdtSourceLineRecord>(Rec);
119 case LF_UDT_MOD_SRC_LINE:
120 return getSourceLineHash<UdtModSourceLineRecord>(Rec);
uint32_t hashBufferV8(ArrayRef< uint8_t > Data)
This class represents lattice values for constants.
void write32le(void *P, uint32_t V)
static bool isAnonymous(StringRef Name)
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE bool endswith(StringRef Suffix) const
Check if this string ends with the given Suffix.
StringRef getName() const
amdgpu Simplify well known AMD library false Value Value const Twine & Name
static Expected< uint32_t > getSourceLineHash(const CVType &Rec)
Tagged union holding either a T or a Error.
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 ...
ClassOptions getOptions() const
ArrayRef< uint8_t > data() const
Expected< uint32_t > hashTypeRecord(const llvm::codeview::CVType &Type)
uint32_t hashStringV1(StringRef Str)
The instances of the Type class are immutable: once they are created, they are never changed...
size_t size() const
size - Get the array size.
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
StringRef getUniqueName() const
static Error deserializeAs(CVType &CVT, T &Record)
static Expected< TagRecordHash > getTagRecordHashForUdt(const CVType &Rec)
static uint32_t getHashForUdt(const TagRecord &Rec, ArrayRef< uint8_t > FullRecord)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void update(ArrayRef< char > Data)
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...