examples include undefined behavior
- Lingua principale
- Rust
- Stelle
- 205
- Fork
- 69
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
There are several places in the example code that call `MaybeUninit::uninit().assume_init()`, which is [undefined behavior](https://doc.rust-lang.org/std/mem/union.MaybeUninit.html#method.assume_init).
Newer toolchains (e.g. rust 1.87.0) print a big warning when this code is compiled:
```plaintext
warning: the type `XSetWindowAttributes` does not permit being left uninitialized
--> src/main.rs:25:58
|
25 | let mut attributes: xlib::XSetWindowAttributes = mem::MaybeUninit::uninit().assume_init();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| this code causes undefined behavior when executed
| help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done
|
= note: integers must be initialized
= note: `#[warn(invalid_value)]` on by default
```
Values must be initialized before being accessed; `MaybeUninit` does not excuse the code from that requirement.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.