hekota wrote:

> I see many places where extra cases have been added for the intangible types 
> but no corresponding tests. Is that ok? How did you know to update these 
> places?

I looked at similar types in other languages, such as the `image*` types in 
[OpenCL](https://github.com/llvm/llvm-project/blob/main/clang/include/clang/Basic/OpenCLImageTypes.def)
 or `__externref_t` in 
[WebAssembly](https://github.com/llvm/llvm-project/blob/main/clang/include/clang/Basic/WebAssemblyReferenceTypes.def).
 I used the same implementation style and defaults as these types (except 
`__externref_t` is a typedef and not a language keyword). Some of the cases are 
tested when the two `builtin_hlsl_resource_t.hlsl` files are parsed and AST 
dumped, but it is not possible to test all case until we can actually use the 
type (llvm/llvm-project#84824).

> I also don't see anywhere that actually successfully uses 
> `__builtin_hlsl_resource_t`. Am I missing it, or should I not expect to see 
> it?

You are correct - the type cannot be directly declared in user code, so the 
tests only check for errors and that the type shows up properly in AST. It is 
possible to use this type internally in Clang or in implicit headers though, 
which are two ways how we could define `RWBuffer` and other builtin types that 
will internally use `__builtin_hlsl_resource_t` handle. That will come alive in 
(llvm/llvm-project#84824).



https://github.com/llvm/llvm-project/pull/97362
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to