================
@@ -489,3 +494,100 @@ void CGHLSLRuntime::generateGlobalCtorDtorCalls() {
GV->eraseFromParent();
}
}
+
+// Returns handle type of a resource, if the type is a resource
+// or an array of resources
+static const HLSLAttributedResourceType *findHandleTypeOnResource(QualType QT)
{
+ // If the type is a resource class, the first field must
+ // be the resource handle of type HLSLAttributedResourceType
+ const clang::Type *Ty = QT->getUnqualifiedDesugaredType();
+ if (RecordDecl *RD = Ty->getAsCXXRecordDecl()) {
+ if (!RD->fields().empty()) {
+ const auto &FirstFD = RD->fields().begin();
+ return dyn_cast<HLSLAttributedResourceType>(
+ FirstFD->getType().getTypePtr());
+ }
+ }
+ return nullptr;
+}
----------------
bogner wrote:
This overlaps with the similar static function in #111203 - how do we plan to
share logic here?
https://github.com/llvm/llvm-project/pull/111207
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits