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