SKIP: FAILED


fn modf_e38ae6(tint_symbol_2 : ptr<workgroup, f32>) {
  var res : f32 = modf(1.0, &(*(tint_symbol_2)));
}

struct tint_symbol {
  [[builtin(position)]]
  value : vec4<f32>;
};

[[stage(vertex)]]
fn vertex_main() -> tint_symbol {
  [[internal(disable_validation__function_var_storage_class)]] var<workgroup> tint_symbol_3 : f32;
  modf_e38ae6(&(tint_symbol_3));
  let tint_symbol_1 : tint_symbol = tint_symbol(vec4<f32>());
  return tint_symbol_1;
}

[[stage(fragment)]]
fn fragment_main() {
  [[internal(disable_validation__function_var_storage_class)]] var<workgroup> tint_symbol_4 : f32;
  modf_e38ae6(&(tint_symbol_4));
}

[[stage(compute), workgroup_size(1)]]
fn compute_main() {
  [[internal(disable_validation__function_var_storage_class)]] var<workgroup> tint_symbol_5 : f32;
  modf_e38ae6(&(tint_symbol_5));
}

Failed to generate: error: Unknown import method: modf
