]> git.ipfire.org Git - thirdparty/gcc.git/commit
gccrs: Fix ICE handling division by zero in const eval
authorPhilip Herron <herron.philip@googlemail.com>
Mon, 15 Sep 2025 16:00:58 +0000 (17:00 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Thu, 30 Oct 2025 19:59:13 +0000 (20:59 +0100)
commitbee204863e7b49e445ce68d8edcd567fe5c4cc55
tree98ed5b5f06824659e8fe48a56292f9f8c975b268
parent182b2e65a68c8b77d2353b52bb4e852d75657a63
gccrs: Fix ICE handling division by zero in const eval

This pulls over more constexpr support from C++ front-end.

Fixes Rust-GCC#4146

gcc/rust/ChangeLog:

* backend/rust-constexpr.cc (eval_constant_expression): port over missing bits
(eval_store_expression): likewise
(eval_call_expression): likewise
(eval_binary_expression): likewise
(eval_bit_field_ref): likewise
(eval_check_shift_p): likewise
(fold_pointer_plus_expression): likewise
(maybe_fold_addr_pointer_plus): likewise
(fold_expr): likewise
(union_active_member): likewise
(fold_indirect_ref_1): likewise
(rs_fold_indirect_ref): likewise
(rs_eval_indirect_ref): likewise
(eval_logical_expression): likewise
(eval_vector_conditional_expression): likewise
(eval_bare_aggregate): likewise
(cxx_eval_trinary_expression): likewise
(eval_and_check_array_index): likewise
(eval_array_reference): likewise
(eval_component_reference): likewise
(rs_bind_parameters_in_call): likewise
(eval_builtin_function_call): likewise
(constexpr_fn_retval): likewise
(verify_constant): likewise
(get_array_or_vector_nelts): likewise
(eval_conditional_expression): likewise
(eval_switch_expr): likewise
(eval_unary_expression): likewise
(cxx_eval_outermost_constant_expr): likewise
(potential_constant_expression_1): likewise

gcc/testsuite/ChangeLog:

* rust/compile/issue-2394.rs: Update test case
* rust/compile/issue-4146.rs: New test.

Signed-off-by: Philip Herron <herron.philip@googlemail.com>
gcc/rust/backend/rust-constexpr.cc
gcc/testsuite/rust/compile/issue-2394.rs
gcc/testsuite/rust/compile/issue-4146.rs [new file with mode: 0644]