[clang] Implement resource binding type prefix mismatch flag setting logic (PR #97103)

Chris B via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 8 18:05:06 PDT 2024


================
@@ -437,7 +453,409 @@ void SemaHLSL::handleShaderAttr(Decl *D, const ParsedAttr &AL) {
     D->addAttr(NewAttr);
 }
 
+struct RegisterBindingFlags {
+  bool Resource = false;
+  bool Udt = false;
+  bool Other = false;
+  bool Basic = false;
+
+  bool Srv = false;
+  bool Uav = false;
+  bool Cbv = false;
+  bool Sampler = false;
+
+  bool ContainsNumeric = false;
+  bool DefaultGlobals = false;
+};
+
+bool isDeclaredWithinCOrTBuffer(const Decl *decl) {
+  if (!decl)
+    return false;
+
+  // Traverse up the parent contexts
+  const DeclContext *context = decl->getDeclContext();
+  while (context) {
----------------
llvm-beanz wrote:

What are the cases where we need to traverse up more than one level here?

https://github.com/llvm/llvm-project/pull/97103


More information about the cfe-commits mailing list