26 Name.append(BaseClassDelim);
30 llvm::StringRef Delim) {
31 Offsets.push_back(Name.size());
32 if (!Name.empty() && !Name.ends_with(BaseClassDelim))
38 llvm::raw_svector_ostream OS(Name);
39 Offsets.push_back(Name.size());
40 OS << ArrayIndexDelim;
46 assert(BaseRD != DerivedRD && DerivedRD->
isDerivedFrom(BaseRD));
47 Offsets.push_back(Name.size());
48 Name.append(FieldDelim);
49 while (BaseRD != DerivedRD) {
51 "HLSL does not support multiple inheritance");
53 assert(DerivedRD &&
"base class not found");
54 Name.append(DerivedRD->
getName());
55 Name.append(BaseClassDelim);
Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate....
C Language Family Type Representation.
QualType getType() const
Retrieves the type of the base class.
Represents a C++ struct/union/class.
unsigned getNumBases() const
Retrieves the number of base classes of this class.
base_class_iterator bases_begin()
bool isDerivedFrom(const CXXRecordDecl *Base) const
Determine whether this class is derived from the class Base.
StringRef getName() const
Get the name of identifier for this declaration as a StringRef.
CXXRecordDecl * getAsCXXRecordDecl() const
Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...
void pushName(llvm::StringRef N)
void pushArrayIndex(uint64_t Index)
void pushBaseNameHierarchy(CXXRecordDecl *DerivedRD, CXXRecordDecl *BaseRD)
void pushBaseName(llvm::StringRef N)
The JSON file list parser is used to communicate input to InstallAPI.