| #include <metal_stdlib> |
| using namespace metal; |
| |
| void deref() { |
| int3 a = 0; |
| thread int3* const p = (&a); |
| (*p)[0] = as_type<int>((as_type<uint>((*p)[0]) + as_type<uint>(42))); |
| } |
| |
| void no_deref() { |
| int3 a = 0; |
| thread int3* const p = (&a); |
| (*p)[0] = as_type<int>((as_type<uint>((*p)[0]) + as_type<uint>(42))); |
| } |
| |
| void deref_inc() { |
| int3 a = 0; |
| thread int3* const p = (&a); |
| (*p)[0] = as_type<int>((as_type<uint>((*p)[0]) + as_type<uint>(1))); |
| } |
| |
| void no_deref_inc() { |
| int3 a = 0; |
| thread int3* const p = (&a); |
| (*p)[0] = as_type<int>((as_type<uint>((*p)[0]) + as_type<uint>(1))); |
| } |
| |
| kernel void tint_symbol() { |
| deref(); |
| no_deref(); |
| deref_inc(); |
| no_deref_inc(); |
| } |