[clang] [llvm] [HLSL] Use hlsl_device address space for getpointer. (PR #127675)

Steven Perron via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 18 10:08:02 PST 2025


================
@@ -94,6 +94,11 @@ bool Qualifiers::isTargetAddressSpaceSupersetOf(LangAS A, LangAS B,
          (A == LangAS::Default &&
           (B == LangAS::cuda_constant || B == LangAS::cuda_device ||
            B == LangAS::cuda_shared)) ||
+         // In HLSL, the this pointer for member functions is in the default
+         // address space. This causes problem if the structure is in
+         // hlsl_device. We want to allow casting from hlsl_device to default
+         // until a proper solution for that issue is found.
+         (A == LangAS::Default && B == LangAS::hlsl_device) ||
----------------
s-perron wrote:

@llvm-beanz I've added a hack to make member functions "work", but having the address space cast will cause other problems.

I could remove this, and say that structs in structured buffers does not work yet? We still have other issues related to the layout anyway.

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


More information about the cfe-commits mailing list