diff options
| author | bors <bors@rust-lang.org> | 2021-05-13 10:49:29 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-05-13 10:49:29 +0000 |
| commit | 17b60b8738735d8d64d03601d1dad4001d1e5733 (patch) | |
| tree | 3e60cd21ed4bc546ed496bcebdaa12ddf3fcd930 /compiler/rustc_codegen_llvm/src | |
| parent | 703f2e1685a63c9718bcc3b09eb33a24334a7541 (diff) | |
| parent | 985fb4caa076e6c62c45de51aa43a03e97d828f3 (diff) | |
| download | rust-17b60b8738735d8d64d03601d1dad4001d1e5733.tar.gz rust-17b60b8738735d8d64d03601d1dad4001d1e5733.zip | |
Auto merge of #83129 - LeSeulArtichaut:thir-unsafeck, r=nikomatsakis
Introduce the beginning of a THIR unsafety checker This poses the foundations for the THIR unsafety checker, so that it can be implemented incrementally: - implements a rudimentary `Visitor` for the THIR (which will definitely need some tweaking in the future) - introduces a new `-Zthir-unsafeck` flag which tells the compiler to use THIR unsafeck instead of MIR unsafeck - implements detection of unsafe functions - adds revisions to the UI tests to test THIR unsafeck alongside MIR unsafeck This uses a very simple query design, where bodies are unsafety-checked on a body per body basis. This however has some big flaws: - the unsafety-checker builds the THIR itself, which means a lot of work is duplicated with MIR building constructing its own copy of the THIR - unsafety-checking closures is currently completely wrong: closures should take into account the "safety context" in which they are created, here we are considering that closures are always a safe context I had intended to fix these problems in follow-up PRs since they are always gated under the `-Zthir-unsafeck` flag (which is explicitely noted to be unsound). r? `@nikomatsakis` cc https://github.com/rust-lang/project-thir-unsafeck/issues/3 https://github.com/rust-lang/project-thir-unsafeck/issues/7
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
