Skip to content

Commit 88384ab

Browse files
committed
gccrs: Fix ICE handling division by zero in const eval
This pulls over more constexpr support from C++ front-end. Fixes #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 <[email protected]>
1 parent c3ca1b9 commit 88384ab

File tree

3 files changed

+431
-128
lines changed

3 files changed

+431
-128
lines changed

0 commit comments

Comments
 (0)