os-rust/compiler
bors 136dab6614 Auto merge of #113569 - RalfJung:miri, r=oli-obk
miri: protect Move() function arguments during the call

This gives `Move` operands a meaning specific to function calls:
- for the duration of the call, the place the operand comes from is protected, making all read and write accesses insta-UB.
- the contents of that place are reset to `Uninit`, so looking at them again after the function returns, we cannot observe their contents

Turns out we can replace the existing "retag return place" hack with the exact same sort of protection on the return place, which is nicely symmetric.

Fixes https://github.com/rust-lang/rust/issues/112564
Fixes https://github.com/rust-lang/miri/issues/2927

This starts with a Miri rustc-push, since we'd otherwise conflict with a PR that recently landed in Miri.
(The "miri tree borrows" commit is an unrelated cleanup I noticed while doing the PR. I can remove it if you prefer.)
r? `@oli-obk`
2023-07-12 10:19:42 +00:00
..
rustc fix link 2023-03-11 10:53:47 -06:00
rustc_abi clean up struct layout code 2023-07-06 13:04:13 +00:00
rustc_apfloat
rustc_arena Extend unused_must_use to cover block exprs 2023-06-15 17:59:13 +08:00
rustc_ast Auto merge of #113270 - the8472:opt-macro-tts, r=nnethercote 2023-07-07 08:04:48 +00:00
rustc_ast_lowering include host_effect_index in Generics 2023-07-04 17:21:52 +00:00
rustc_ast_passes Lint against misplaced where-clauses on assoc tys in traits 2023-07-11 01:19:11 +02:00
rustc_ast_pretty Syntatically accept become expressions 2023-06-19 12:54:34 +00:00
rustc_attr Ensure Fluent messages are in alphabetical order 2023-05-25 23:49:35 +00:00
rustc_baked_icu_data Regen baked data 2023-05-02 10:45:16 -07:00
rustc_borrowck Auto merge of #113316 - DrMeepster:underefer_perf, r=oli-obk 2023-07-11 06:52:53 +00:00
rustc_builtin_macros fix typo 2023-06-28 10:52:48 +08:00
rustc_codegen_cranelift Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
rustc_codegen_gcc Move TyCtxt::mk_x to Ty::new_x where applicable 2023-07-05 20:27:07 +01:00
rustc_codegen_llvm Reuse LLVMConstInBoundsGEP2 2023-07-10 00:20:56 -07:00
rustc_codegen_ssa Use constants from object crate 2023-07-11 23:48:18 +00:00
rustc_const_eval fix handling of alignment for dyn-sized places 2023-07-11 21:59:01 +02:00
rustc_data_structures Upgrade to indexmap 2.0.0 2023-07-03 13:51:54 -07:00
rustc_driver Update rustix 2023-07-03 07:20:51 +00:00
rustc_driver_impl Dynamically size sigaltstk in rustc 2023-07-10 12:05:16 -07:00
rustc_error_codes Implement custom diagnostic for ConstParamTy 2023-06-01 18:21:42 +00:00
rustc_error_messages Require TAITs to be mentioned in the signatures of functions that register hidden types for them 2023-07-07 13:13:18 +00:00
rustc_errors Add a simple markdown parser for formatting rustc --explain 2023-07-03 16:04:18 -04:00
rustc_expand perform TokenStream replacement in-place when possible in expand_macro 2023-07-03 13:29:15 +02:00
rustc_feature Add feature and attribute definition 2023-07-04 11:47:45 +00:00
rustc_fluent_macro Fix diagnostics with errors 2023-05-26 10:44:18 +00:00
rustc_fs_util Add try_canonicalize to rustc_fs_util and use it over fs::canonicalize 2023-03-16 21:50:23 +01:00
rustc_graphviz enable rust_2018_idioms for doctests 2023-05-07 00:12:29 +03:00
rustc_hir Replace RPITIT current impl with new strategy that lowers as a GAT 2023-07-08 18:21:34 -03:00
rustc_hir_analysis Replace RPITIT current impl with new strategy that lowers as a GAT 2023-07-08 18:21:34 -03:00
rustc_hir_pretty hir: Add Become expression kind 2023-06-26 08:56:32 +00:00
rustc_hir_typeck Auto merge of #113573 - lcnr:typeck-results, r=compiler-errors 2023-07-12 07:50:40 +00:00
rustc_incremental Applied nits 2023-06-11 22:45:04 -04:00
rustc_index Auto merge of #111925 - Manishearth:rollup-z6z6l2v, r=Manishearth 2023-05-25 00:33:43 +00:00
rustc_infer Rollup merge of #113567 - chenyukang:yukang-fix-113354-while-let, r=cjgillot 2023-07-11 21:00:28 -07:00
rustc_interface Remove chalk from the compiler 2023-07-03 21:40:04 +00:00
rustc_lexer Revert the lexing of c_str_literals 2023-07-05 13:11:17 +02:00
rustc_lint Auto merge of #111717 - Urgau:uplift_fn_null_check, r=oli-obk 2023-07-11 09:34:48 +00:00
rustc_lint_defs Lint against misplaced where-clauses on assoc tys in traits 2023-07-11 01:19:11 +02:00
rustc_llvm Reuse LLVMConstInBoundsGEP2 2023-07-10 00:20:56 -07:00
rustc_log Downgrade tracing and syn 2023-07-02 21:02:31 +02:00
rustc_macros Downgrade tracing and syn 2023-07-02 21:02:31 +02:00
rustc_metadata Replace RPITIT current impl with new strategy that lowers as a GAT 2023-07-08 18:21:34 -03:00
rustc_middle Auto merge of #113569 - RalfJung:miri, r=oli-obk 2023-07-12 10:19:42 +00:00
rustc_mir_build Rollup merge of #113217 - ericmarkmartin:lower-type-relative-ctor-to-adt, r=cjgillot 2023-07-08 20:53:29 +02:00
rustc_mir_dataflow Auto merge of #113316 - DrMeepster:underefer_perf, r=oli-obk 2023-07-11 06:52:53 +00:00
rustc_mir_transform miri: protect Move() function arguments during the call 2023-07-11 21:59:01 +02:00
rustc_monomorphize Replace RPITIT current impl with new strategy that lowers as a GAT 2023-07-08 18:21:34 -03:00
rustc_parse Fix the issue of wrong diagnosis for extern pub fn 2023-07-05 16:25:46 +08:00
rustc_parse_format Fix typos in compiler 2023-04-10 22:02:52 +02:00
rustc_passes Replace RPITIT current impl with new strategy that lowers as a GAT 2023-07-08 18:21:34 -03:00
rustc_plugin_impl Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_privacy Replace RPITIT current impl with new strategy that lowers as a GAT 2023-07-08 18:21:34 -03:00
rustc_query_impl Avoid calling queries during query stack printing 2023-06-27 16:12:07 +02:00
rustc_query_system Show which type was not specialized on query cycle misuse 2023-07-05 07:30:28 +00:00
rustc_resolve Auto merge of #112988 - spastorino:new-rpitit-24, r=compiler-errors 2023-07-10 19:01:30 +00:00
rustc_serialize Upgrade to indexmap 2.0.0 2023-07-03 13:51:54 -07:00
rustc_session Auto merge of #112988 - spastorino:new-rpitit-24, r=compiler-errors 2023-07-10 19:01:30 +00:00
rustc_smir Implement a few more rvalue translation to smir 2023-07-10 11:47:48 -07:00
rustc_span Auto merge of #111717 - Urgau:uplift_fn_null_check, r=oli-obk 2023-07-11 09:34:48 +00:00
rustc_symbol_mangling Move TyCtxt::mk_x to Ty::new_x where applicable 2023-07-05 20:27:07 +01:00
rustc_target Add support for NetBSD/riscv64 aka. riscv64gc-unknown-netbsd. 2023-07-05 13:49:01 +00:00
rustc_trait_selection Auto merge of #113470 - compiler-errors:new-solver-structurally-resolve-pat, r=lcnr 2023-07-11 15:29:47 +00:00
rustc_traits get rid of a bit more calls to poly_select 2023-07-06 16:50:12 +00:00
rustc_transmute Put LayoutError behind reference to shrink result 2023-07-01 21:16:25 +02:00
rustc_ty_utils Replace RPITIT current impl with new strategy that lowers as a GAT 2023-07-08 18:21:34 -03:00
rustc_type_ir Add a new trait to Debug things with an infcx available 2023-07-06 11:36:39 +01:00