rust/compiler
许杰友 Jieyou Xu (Joe) cfd48bdd7e
Rollup merge of #126265 - RalfJung:interpret-cast-validity, r=oli-obk
interpret: ensure we check bool/char for validity when they are used in a cast

In general, `Scalar::to_bits` is a bit dangerous as it bypasses all type information. We should usually prefer matching on the type and acting according to that. So I also refactored `unary_op` handling of integers to do that. The remaining `to_bits` uses are operations that just fundamentally don't care about the sign (and only work on integers).

invalid_char_cast.rs is the key new test, the others already passed before this PR.

r? `@oli-obk`
2024-06-11 14:16:47 +01:00
..
rustc
rustc_abi
rustc_arena
rustc_ast Rollup merge of #124214 - carbotaniuman:parse_unsafe_attrs, r=michaelwoerister 2024-06-07 20:14:28 +02:00
rustc_ast_ir Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_ast_lowering Delegation: fix ICE on recursive delegation 2024-06-10 21:27:25 +03:00
rustc_ast_passes Parse unsafe attributes 2024-06-06 20:26:27 -05:00
rustc_ast_pretty Rollup merge of #124214 - carbotaniuman:parse_unsafe_attrs, r=michaelwoerister 2024-06-07 20:14:28 +02:00
rustc_attr
rustc_baked_icu_data Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_borrowck Uplift TypeRelation and Relate 2024-06-06 07:50:19 -04:00
rustc_builtin_macros Handle safe case 2024-06-06 20:54:51 -05:00
rustc_codegen_cranelift ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_codegen_gcc ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_codegen_llvm Rollup merge of #126159 - RalfJung:scalarint-size-mismatch, r=oli-obk 2024-06-10 21:12:25 +02:00
rustc_codegen_ssa ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_const_eval interpret: ensure we check bool/char for validity when they are used in a cast 2024-06-11 12:16:09 +02:00
rustc_data_structures Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_driver
rustc_driver_impl Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_error_codes Rollup merge of #124746 - OliverKillane:E0582-explain-assoc-types-improvement, r=pnkfelix 2024-06-05 18:21:08 +02:00
rustc_error_messages
rustc_errors
rustc_expand Rollup merge of #125913 - fmease:early-lints-spruce-up-some-diags, r=Nadrieril 2024-06-11 09:14:34 +01:00
rustc_feature offset_of: allow (unstably) taking the offset of slice tail fields 2024-06-08 18:17:55 +02:00
rustc_fluent_macro
rustc_fs_util
rustc_graphviz
rustc_hir Auto merge of #125918 - oli-obk:const_block_ice, r=compiler-errors 2024-06-07 09:08:59 +00:00
rustc_hir_analysis Auto merge of #125918 - oli-obk:const_block_ice, r=compiler-errors 2024-06-07 09:08:59 +00:00
rustc_hir_pretty Revert "Create const block DefIds in typeck instead of ast lowering" 2024-06-07 08:33:58 +00:00
rustc_hir_typeck Rollup merge of #126159 - RalfJung:scalarint-size-mismatch, r=oli-obk 2024-06-10 21:12:25 +02:00
rustc_incremental
rustc_index
rustc_index_macros Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_infer Add explanatory note to async block type mismatch error 2024-06-10 17:14:49 +05:30
rustc_interface Revert "Rollup merge of #124976 - petrochenkov:usedcrates, r=oli-obk" 2024-06-06 10:06:28 +00:00
rustc_lexer
rustc_lint Rollup merge of #125913 - fmease:early-lints-spruce-up-some-diags, r=Nadrieril 2024-06-11 09:14:34 +01:00
rustc_lint_defs Rollup merge of #125913 - fmease:early-lints-spruce-up-some-diags, r=Nadrieril 2024-06-11 09:14:34 +01:00
rustc_llvm
rustc_log remove tracing tree indent lines 2024-05-30 15:26:48 +02:00
rustc_macros Make the panic info more useful 2024-06-06 09:47:10 +00:00
rustc_metadata Only compute specializes query if specialization is enabled in the crate of the specialized impl 2024-06-07 15:58:50 -04:00
rustc_middle Rollup merge of #126265 - RalfJung:interpret-cast-validity, r=oli-obk 2024-06-11 14:16:47 +01:00
rustc_mir_build Rollup merge of #126159 - RalfJung:scalarint-size-mismatch, r=oli-obk 2024-06-10 21:12:25 +02:00
rustc_mir_dataflow
rustc_mir_transform Auto merge of #125910 - scottmcm:single-use-consts, r=saethlin 2024-06-11 02:03:12 +00:00
rustc_monomorphize Auto merge of #125928 - michaelwoerister:fix-cgu-hashstable, r=oli-obk 2024-06-07 04:02:59 +00:00
rustc_next_trait_solver Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_parse Rollup merge of #126052 - nnethercote:rustc_parse-more-cleanups, r=spastorino 2024-06-07 20:14:30 +02:00
rustc_parse_format Apply x clippy --fix and x fmt 2024-05-30 09:51:27 +08:00
rustc_passes reachable computation: clarify comments around consts 2024-06-11 09:08:28 +02:00
rustc_pattern_analysis ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_privacy Make body_owned_by return the body directly. 2024-05-29 10:04:08 +00:00
rustc_query_impl Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_query_system Make the panic info more useful 2024-06-06 09:47:10 +00:00
rustc_resolve Rollup merge of #126234 - Bryanskiy:delegation-no-entry-ice, r=petrochenkov 2024-06-11 09:14:35 +01:00
rustc_sanitizers Misc fixes (pattern type lowering, cfi, pretty printing) 2024-06-05 22:25:42 +01:00
rustc_serialize Apply x clippy --fix and x fmt 2024-05-30 09:51:27 +08:00
rustc_session Improve naming and path operations in crate loader 2024-06-06 21:53:29 +02:00
rustc_smir Revert "Rollup merge of #124976 - petrochenkov:usedcrates, r=oli-obk" 2024-06-06 10:06:28 +00:00
rustc_span rustc_span: Optimize syntax context updates in spans 2024-06-10 02:20:16 +03:00
rustc_symbol_mangling Add Ty to ConstKind::Value 2024-06-05 22:25:41 +01:00
rustc_target offset_of: allow (unstably) taking the offset of slice tail fields 2024-06-08 18:17:55 +02:00
rustc_trait_selection Rollup merge of #126258 - oli-obk:recursive_rpit, r=lcnr 2024-06-11 14:16:47 +01:00
rustc_traits Align Term methods with GenericArg methods 2024-06-03 20:36:27 -04:00
rustc_transmute ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_ty_utils ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_type_ir Uplift TypeRelation and Relate 2024-06-06 07:50:19 -04:00
rustc_type_ir_macros
stable_mir Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00