From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 5F4D13858426; Mon, 30 Oct 2023 08:01:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5F4D13858426 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1698652885; bh=goQygSzC2HxvHbTIettQMNvRQVwT0ZBg40W1aVs/9nw=; h=From:To:Subject:Date:In-Reply-To:References:From; b=hNhscePwcjX01laK9M9faGFW/xDVGlTjmvdFZESvOq/m5Ox+ptG5Hn6HRtH3n1t0J BlBKZ/GCRY6zqJs+4xuN+cxFQwxBCJucp8BTqfqib2K6I9sGS2mNFDnP68oLnWqqS/ WG4eEY3d75PL8U3n28lMVMzQhVzCG0kGwXQS3oas= From: "sjames at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/112280] [14 regression] ICE building libgcrypt-1.10.2 on s390 (during GIMPLE pass: ccp) Date: Mon, 30 Oct 2023 08:01:22 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: sjames at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D112280 --- Comment #4 from Sam James --- Minimised. ``` $ gcc -O3 -c rijndael.i -march=3Darch13 -mzarch rijndael.i:30:18: warning: passing argument 1 of =E2=80=98buf_put_le64=E2= =80=99 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 =E2=80=98void *=E2=80=99 but argument is of= type =E2=80=98int=E2=80=99 8 | void buf_put_le64(void *_buf, long long val) { | ~~~~~~^~~~ rijndael.i:32:47: warning: passing argument 1 of =E2=80=98buf_put_le64=E2= =80=99 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 =E2=80=98void *=E2=80=99 but argument is of= type =E2=80=98int=E2=80=99 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_de= f*, 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_n= ode* (*)(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 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 =3D _buf; out->a =3D __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 =3D __builtin_bswap64(cipher_bulk_ops_t__buf); } tweak_next_lo =3D __trans_tmp_3; { int _buf; cipher_bulk_ops_t___trans_tmp_4 =3D __builtin_bswap64(_buf); } tweak_next_hi =3D cipher_bulk_ops_t___trans_tmp_4; while (cipher_bulk_ops_t_nblocks) { tweak_lo =3D tweak_next_lo; tweak_hi =3D tweak_next_hi; tweak_next_hi =3D tweak_next_lo =3D carry; { __trans_tmp_5 =3D __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 =3D 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--; } } ```=