SKIP: FAILED


fn modf_5e8476(tint_symbol_2 : ptr<private, 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<private> tint_symbol_3 : f32;
  modf_5e8476(&(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 : f32;
  modf_5e8476(&(tint_symbol_4));
}

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

Failed to generate: error: Unknown import method: modf
