[clang] [HLSL] Add implicit resource element type concepts to AST (PR #116413)

Joshua Batista via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 19 10:08:46 PST 2024


================
@@ -323,19 +325,114 @@ struct TemplateParameterListBuilder {
     return *this;
   }
 
-  BuiltinTypeDeclBuilder &finalizeTemplateArgs() {
+  // The concept specialization expression (CSE) constructed in
+  // constructConceptSpecializationExpr is constructed so that it
+  // matches the CSE that is constructed when parsing the below C++ code:
+  //
+  // template<typename T>
+  // concept is_typed_resource_element_compatible = sizeof(T) <= 16;
----------------
bob80905 wrote:

I don't believe that's absolutely required. For example, one can have `RWBuffer<float>`, where the element type, `float`, is not a vector. If we require vectors, then I would think `RWBuffer<float>` would be invalid, and only things like `RWBuffer<float2>` would be accepted.

Additionally, this comment block will be changed when the finalized constraint expression is added, since the concept is more complex than just comparing the size to 16 bytes.

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


More information about the cfe-commits mailing list