SKIP: FAILED

#include <metal_stdlib>
using namespace metal;
struct str {
  float4 i;
};

void func(thread float4* const pointer) {
  pointer = float4(0.0f);
}
kernel void tint_symbol() {
  str F = {};
  func(F.i);
}
program_source:8:11: error: cannot assign to variable 'pointer' with const-qualified type 'float4 *const'
  pointer = float4(0.0f);
  ~~~~~~~ ^
program_source:7:32: note: variable 'pointer' declared const here
void func(thread float4* const pointer) {
          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
program_source:12:3: error: no matching function for call to 'func'
  func(F.i);
  ^~~~
program_source:7:6: note: candidate function not viable: no known conversion from 'float4' (vector of 4 'float' values) to 'float4 *const' for 1st argument; take the address of the argument with &
void func(thread float4* const pointer) {
     ^

