rust/compiler
bors 263edd43c5 Auto merge of #99033 - 5225225:interpreter-validity-checks, r=oli-obk
Use constant eval to do strict mem::uninit/zeroed validity checks

I'm not sure about the code organisation here, I just dumped the check in rustc_const_eval at the root. Not hard to move it elsewhere, in any case.

Also, this means cranelift codegen intrinsics lose the strict checks, since they don't seem to depend on rustc_const_eval, and I didn't see a point in keeping around two copies.

I also left comments in the is_zero_valid methods about "uhhh help how do i do this", those apply to both methods equally.

Also rustc_codegen_ssa now depends on rustc_const_eval... is this okay?

Pinging `@RalfJung` since you were the one who mentioned this to me, so I'm assuming you're interested.

Haven't had a chance to run full tests on this since it's really warm, and it's 1AM, I'll check out any failures/comments in the morning :)
2022-07-17 19:28:01 +00:00
..
rustc Don't rerun the build script for the compiler each time on linux 2022-07-10 23:57:25 -05:00
rustc_apfloat Update smallvec to 1.8.1. 2022-06-27 08:48:55 +10:00
rustc_arena Rollup merge of #97711 - Nilstrieb:rustc-arena-ub, r=wesleywiser 2022-07-07 18:06:49 +05:30
rustc_ast Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_ast_lowering Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_ast_passes Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_ast_pretty Parse closure binders 2022-07-12 16:25:16 +04:00
rustc_attr Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_borrowck Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_builtin_macros Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_codegen_cranelift Auto merge of #99033 - 5225225:interpreter-validity-checks, r=oli-obk 2022-07-17 19:28:01 +00:00
rustc_codegen_gcc Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
rustc_codegen_llvm Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_codegen_ssa Auto merge of #99033 - 5225225:interpreter-validity-checks, r=oli-obk 2022-07-17 19:28:01 +00:00
rustc_const_eval Auto merge of #99033 - 5225225:interpreter-validity-checks, r=oli-obk 2022-07-17 19:28:01 +00:00
rustc_data_structures Auto merge of #96544 - m-ysk:feature/issue-96358, r=cjgillot 2022-07-14 21:50:14 +00:00
rustc_driver Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
rustc_error_codes fixes post rebase 2022-07-08 21:18:16 +00:00
rustc_error_messages Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_errors Rollup merge of #99342 - TaKO8Ki:avoid-symbol-to-string-conversions, r=compiler-errors 2022-07-16 22:30:56 +02:00
rustc_expand Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_feature Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_fs_util
rustc_graphviz Fully stabilize NLL 2022-06-03 17:16:41 -04:00
rustc_hir Rollup merge of #99119 - TaKO8Ki:remove-string-matching-about-methods, r=cjgillot 2022-07-15 15:53:38 +05:30
rustc_hir_pretty Rollup merge of #98705 - WaffleLapkin:closure_binder, r=cjgillot 2022-07-14 14:14:21 +05:30
rustc_incremental Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
rustc_index Use a bitset instead of a hash map in HIR ID validator 2022-07-04 08:30:13 +02:00
rustc_infer Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_interface Auto merge of #96544 - m-ysk:feature/issue-96358, r=cjgillot 2022-07-14 21:50:14 +00:00
rustc_lexer fix typo in comment 2022-06-28 19:59:09 +05:30
rustc_lint Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_lint_defs Only suggest if span is not erroneous 2022-07-15 17:32:34 +00:00
rustc_llvm Auto merge of #95685 - oxidecomputer:restore-static-dwarf, r=pnkfelix 2022-07-16 00:18:54 +00:00
rustc_log clippy::complexity fixes 2022-05-26 13:14:24 +02:00
rustc_macros macros: support adding warnings to diags 2022-07-15 16:13:49 +01:00
rustc_metadata Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_middle Auto merge of #99033 - 5225225:interpreter-validity-checks, r=oli-obk 2022-07-17 19:28:01 +00:00
rustc_mir_build Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_mir_dataflow Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r=estebank 2022-07-16 22:30:47 +02:00
rustc_mir_transform Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_monomorphize Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
rustc_parse Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_parse_format Make rustc_parse_format compile on stable 2022-05-03 11:26:58 +02:00
rustc_passes Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_plugin_impl remove currently unused deps 2022-06-13 22:20:51 +03:00
rustc_privacy errors: lint on LintDiagnosticBuilder::build 2022-07-15 16:13:47 +01:00
rustc_query_impl Use constant eval to do strict validity checks 2022-07-14 22:55:17 +01:00
rustc_query_system Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
rustc_resolve Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_save_analysis Rollup merge of #98705 - WaffleLapkin:closure_binder, r=cjgillot 2022-07-14 14:14:21 +05:30
rustc_serialize use BufReader for counting zero bytes 2022-07-02 22:51:42 +09:00
rustc_session Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_smir Rustfmt 2022-06-02 10:29:00 +00:00
rustc_span Rollup merge of #99119 - TaKO8Ki:remove-string-matching-about-methods, r=cjgillot 2022-07-15 15:53:38 +05:30
rustc_symbol_mangling Allow to create definitions inside the query system. 2022-07-06 22:50:55 +02:00
rustc_target Auto merge of #99033 - 5225225:interpreter-validity-checks, r=oli-obk 2022-07-17 19:28:01 +00:00
rustc_trait_selection Stabilize let_chains 2022-07-16 20:17:58 -03:00
rustc_traits Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_ty_utils Rollup merge of #99000 - JulianKnodt:allow_resolve_no_substs, r=lcnr 2022-07-14 19:24:04 +05:30
rustc_type_ir Auto merge of #98614 - oli-obk:take_unsound_opaque_types, r=wesleywiser 2022-07-08 17:55:26 +00:00
rustc_typeck Stabilize let_chains 2022-07-16 20:17:58 -03:00