Skip to content

Commit

Permalink
Add working example for E0617 explanation
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed May 26, 2020
1 parent 97f3eee commit 695623a
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/librustc_error_codes/error_codes/E0617.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,14 @@ Certain Rust types must be cast before passing them to a variadic function,
because of arcane ABI rules dictated by the C standard. To fix the error,
cast the value to the type specified by the error message (which you may need
to import from `std::os::raw`).

In this case, `c_double` has the same size as `f64` so we can use it directly:

```
# extern {
# fn printf(c: *const i8, ...);
# }
unsafe {
printf(::std::ptr::null(), 0f64); // ok!
}
```

0 comments on commit 695623a

Please sign in to comment.