https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112733

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hmm, stack corruption.  Last good frame:

#0  wi::divmod_internal (quotient=0x0, remainder_len=0x7fffffffc8fc, 
    remainder=0x7fffffffc990, dividend_val=0x7ffff71c4e68, dividend_len=1, 
    dividend_prec=131072, divisor_val=0x7ffff702d010, divisor_len=1, 
    divisor_prec=131072, sgn=UNSIGNED, oflow=0x0)
    at /space/rguenther/src/gcc/gcc/wide-int.cc:1800
#1  0x00000000011ec195 in
wi::mod_trunc<generic_wide_int<wi::extended_tree<131072> >,
generic_wide_int<wi::extended_tree<131072> > > (x=..., y=..., 
    sgn=UNSIGNED, overflow=0x0) at /space/rguenther/src/gcc/gcc/wide-int.h:3382
#2  0x00000000011e90ee in
wi::multiple_of_p<generic_wide_int<wi::extended_tree<131072> >,
generic_wide_int<wi::extended_tree<131072> > > (x=..., y=..., 
    sgn=UNSIGNED) at /space/rguenther/src/gcc/gcc/wide-int.h:3549
#3  0x00000000011d564d in multiple_of_p (
    type=<integer_type 0x7ffff702b2a0 signed char>, 
    top=<ssa_name 0x7ffff7016f30 2>, bottom=<integer_cst 0x7ffff702d000>, 
    nowrap=true) at /space/rguenther/src/gcc/gcc/fold-const.cc:14554
#4  0x00000000011caa58 in fold_binary_loc (loc=0, code=BIT_AND_EXPR, 
    type=<integer_type 0x7ffff702b2a0 signed char>, 
    op0=<ssa_name 0x7ffff7016f30 2>, op1=<integer_cst 0x7ffff702d000>)
    at /space/rguenther/src/gcc/gcc/fold-const.cc:12112
#5  0x00000000011d4356 in fold_build2_loc (loc=0, code=BIT_AND_EXPR, 
    type=<integer_type 0x7ffff702b2a0 signed char>, 
    op0=<ssa_name 0x7ffff7016f30 2>, op1=<integer_cst 0x7ffff702d000>)
    at /space/rguenther/src/gcc/gcc/fold-const.cc:14128
#6  0x0000000001848eba in analyze_and_compute_bitop_with_inv_effect (
    loop=0x7ffff700e4b0, phidef=<ssa_name 0x7ffff71e5000 4>, 
    niter=<plus_expr 0x7ffff71f2230>)
    at /space/rguenther/src/gcc/gcc/tree-scalar-evolution.cc:3719

and we end up with

(gdb) p divisor_blocks_needed
$36 = 4096

  if (remainder)
    {
      *remainder_len = wi_pack (remainder, b_remainder, n, dividend_prec);

(gdb) p n
$50 = 4096
(gdb) p dividend_prec
$51 = 128
(gdb) p remainder
$52 = (long *) 0x7fffffffc990
(gdb) p b_remainder
$53 = (unsigned int *) 0x7ffffffec0f0

and that wi_pack faults.

Reply via email to