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

--- Comment #6 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
Peeking at the gdb backtrace:

#0  operator_cast::op1_range (this=0x2e23ac0 <op_convert>, r=...,
type=0x7ffff7676c78, lhs=..., op2=...) at ../../gcc/gcc/range-op.cc:1881
#1  0x0000000001f7195e in gimple_range_calc_op1 (r=..., stmt=0x7ffff77c55a0,
lhs_range=..., op2_range=...) at ../../gcc/gcc/gimple-range.cc:337
#2  0x0000000001f817e2 in gori_compute::compute_name_range_op
(this=0x7fffffffd010, r=..., stmt=0x7ffff77c55a0, lhs=..., name=0x7ffff77b37e0)
at ../../gcc/gcc/gimple-range-gori.cc:507
#3  0x0000000001f81c10 in gori_compute::compute_operand_range
(this=0x7fffffffd010, r=..., stmt=0x7ffff77c55a0, lhs=..., name=0x7ffff77b37e0)
at ../../gcc/gcc/gimple-range-gori.cc:607

          range_op_handler (PLUS_EXPR, type)->fold_range (lhs_neg,
                                                          type,
                                                          converted_lhs,
                                                          lim_range);

(gdb) list range_op_handler
3420
3421    // The tables are hidden and accessed via a simple extern function.
3422
3423    range_operator *
3424    range_op_handler (enum tree_code code, tree type)
3425    {
3426      // First check if there is a pointer specialization.
3427      if (POINTER_TYPE_P (type))
3428        return pointer_tree_table[code];
3429      if (INTEGRAL_TYPE_P (type))
3430        return integral_tree_table[code];
3431      return NULL;
3432    }

(gdb) call range_op_handler (PLUS_EXPR, type)
$2 = (range_operator *) 0x0

(gdb) call debug_generic_expr(type)
char *

(gdb) call POINTER_TYPE_P(type)
$7 = true

Reply via email to