| #include <metal_stdlib> | |
| using namespace metal; | |
| void deref_const() { | |
| int3 a = 0; | |
| int b = a[0]; | |
| a[0] = 42; | |
| } | |
| void no_deref_const() { | |
| int3 a = 0; | |
| int b = a[0]; | |
| a[0] = 42; | |
| } | |
| void deref_let() { | |
| int3 a = 0; | |
| int const i = 0; | |
| int b = a[i]; | |
| a[0] = 42; | |
| } | |
| void no_deref_let() { | |
| int3 a = 0; | |
| int const i = 0; | |
| int b = a[i]; | |
| a[0] = 42; | |
| } | |
| void deref_var() { | |
| int3 a = 0; | |
| int i = 0; | |
| int b = a[i]; | |
| a[0] = 42; | |
| } | |
| void no_deref_var() { | |
| int3 a = 0; | |
| int const i = 0; | |
| int b = a[i]; | |
| a[0] = 42; | |
| } | |
| kernel void tint_symbol() { | |
| deref_const(); | |
| no_deref_const(); | |
| deref_let(); | |
| no_deref_let(); | |
| deref_var(); | |
| no_deref_var(); | |
| return; | |
| } | |