examples include undefined behavior
- Linguagem predominante
- Rust
- Estrelas
- 205
- Forks
- 69
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
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.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Avaliação
Esta issue ainda não foi avaliada.