#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();
}
