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