[clang] [HLSL] Implement Texture2D default template (PR #184207)

Steven Perron via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 6 07:05:00 PST 2026


================
@@ -5548,3 +5548,46 @@ bool SemaHLSL::handleInitialization(VarDecl *VDecl, Expr *&Init) {
   Init = C;
   return true;
 }
+
+QualType SemaHLSL::ActOnTemplateShorthand(TemplateDecl *Template,
+                                          SourceLocation NameLoc) {
+  if (!Template)
+    return QualType();
+
+  DeclContext *DC = Template->getDeclContext();
+  if (!DC->isNamespace() || !cast<NamespaceDecl>(DC)->getIdentifier() ||
+      cast<NamespaceDecl>(DC)->getName() != "hlsl")
+    return QualType();
+
+  TemplateParameterList *Params = Template->getTemplateParameters();
+  if (!Params || Params->size() != 1)
+    return QualType();
+
+  if (Template->getName() != "Texture2D")
+    return QualType();
----------------
s-perron wrote:

That seems to work. I also add test to make sure that [RW]Buffer and [RW]StructuredBuffer must have explicit templates.

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


More information about the cfe-commits mailing list