https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112280
--- Comment #4 from Sam James <sjames at gcc dot gnu.org> --- Minimised. ``` $ gcc -O3 -c rijndael.i -march=arch13 -mzarch rijndael.i:30:18: warning: passing argument 1 of ‘buf_put_le64’ makes pointer from integer without a cast [-Wint-conversion] 30 | buf_put_le64(cipher_bulk_ops_t_outbuf_arg, __trans_tmp_5 ^ tweak_lo); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | int rijndael.i:8:25: note: expected ‘void *’ but argument is of type ‘int’ 8 | void buf_put_le64(void *_buf, long long val) { | ~~~~~~^~~~ rijndael.i:32:47: warning: passing argument 1 of ‘buf_put_le64’ makes pointer from integer without a cast [-Wint-conversion] 32 | buf_put_le64(cipher_bulk_ops_t_outbuf_arg + 8, __trans_tmp_2 ^ tweak_hi); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ | | | int rijndael.i:8:25: note: expected ‘void *’ but argument is of type ‘int’ 8 | void buf_put_le64(void *_buf, long long val) { | ~~~~~~^~~~ during GIMPLE pass: ccp rijndael.i:12:6: internal compiler error: Segmentation fault 12 | void cipher_bulk_ops_t() { | ^~~~~~~~~~~~~~~~~ 0x578bc41b internal_error(char const*, ...) ???:0 0x5611d4f6 gen_rtx_SUBREG(machine_mode, rtx_def*, poly_int<1u, unsigned long long>) ???:0 0x56cbfcbb s390_vectorize_vec_perm_const(machine_mode, machine_mode, rtx_def*, rtx_def*, rtx_def*, vec_perm_indices const&) ???:0 0x5656e4b3 can_vec_perm_const_p(machine_mode, machine_mode, vec_perm_indices const&, bool) ???:0 0x57784b87 gimple_simplify_VEC_PERM_EXPR(gimple_match_op*, gimple**, tree_node* (*)(tree_node*), code_helper, tree_node*, tree_node*, tree_node*, tree_node*) ???:0 0x56e5b3cf gimple_simplify(gimple_match_op*, gimple**, tree_node* (*)(tree_node*), code_helper, tree_node*, tree_node*, tree_node*, tree_node*) ???:0 0x56f95e7f gimple_simplify(gimple*, gimple_match_op*, gimple**, tree_node* (*)(tree_node*), tree_node* (*)(tree_node*)) ???:0 0x562568b1 gimple_fold_stmt_to_constant_1(gimple*, tree_node* (*)(tree_node*), tree_node* (*)(tree_node*)) ???:0 0x569fca5f ssa_propagation_engine::simulate_stmt(gimple*) ???:0 0x569fcdd3 ssa_propagation_engine::simulate_block(basic_block_def*) ???:0 0x569fd411 ssa_propagation_engine::ssa_propagate() ???:0 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://bugs.gentoo.org/> for instructions. ``` ``` $ cat rijndael.i typedef struct { long long a; } bufhelp_u64_t; int cipher_bulk_ops_t_outbuf_arg, cipher_bulk_ops_t_nblocks, cipher_bulk_ops_t__buf; long long cipher_bulk_ops_t___trans_tmp_4; long long buf_get_le64(int _buf) { return __builtin_bswap64(((bufhelp_u64_t *)_buf)->a); } void buf_put_le64(void *_buf, long long val) { bufhelp_u64_t *out = _buf; out->a = __builtin_bswap64(val); } void cipher_bulk_ops_t() { long long __trans_tmp_5, __trans_tmp_3, __trans_tmp_2, tweak_lo, tweak_hi, tweak_next_lo, tweak_next_hi, carry; { __trans_tmp_3 = __builtin_bswap64(cipher_bulk_ops_t__buf); } tweak_next_lo = __trans_tmp_3; { int _buf; cipher_bulk_ops_t___trans_tmp_4 = __builtin_bswap64(_buf); } tweak_next_hi = cipher_bulk_ops_t___trans_tmp_4; while (cipher_bulk_ops_t_nblocks) { tweak_lo = tweak_next_lo; tweak_hi = tweak_next_hi; tweak_next_hi = tweak_next_lo = carry; { __trans_tmp_5 = __builtin_bswap64(((bufhelp_u64_t *)cipher_bulk_ops_t_outbuf_arg)->a); } buf_put_le64(cipher_bulk_ops_t_outbuf_arg, __trans_tmp_5 ^ tweak_lo); __trans_tmp_2 = buf_get_le64(cipher_bulk_ops_t_outbuf_arg + 8); buf_put_le64(cipher_bulk_ops_t_outbuf_arg + 8, __trans_tmp_2 ^ tweak_hi); cipher_bulk_ops_t_nblocks--; } } ```