SKIP: FAILED


fn modf_9c6a91(tint_symbol_2 : ptr<private, vec2<f32>>) {
  var res : vec2<f32> = modf(vec2<f32>(), &(*(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<private> tint_symbol_3 : vec2<f32>;
  modf_9c6a91(&(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<private> tint_symbol_4 : vec2<f32>;
  modf_9c6a91(&(tint_symbol_4));
}

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

Failed to generate: error: Unknown import method: modf
