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

--- Comment #3 from Steven Sun <StevenSun2021 at hotmail dot com> ---
Oh, my reduced test case has the same infinite recursion occurring, where

the `a+4` is

binop_svalue (pointer_plus_expr, unaryop_svalue (nop_expr, conjured_svalue (,
_iterator::_iterator (&__position, 0);,
decl_region(frame_region(‘Vector::Filter’, index: 2, depth: 3), ‘struct
iterator’, ‘iterator __position’))), constant_svalue(‘long unsigned int’, 4))

the `b-4` is

binop_svalue (pointer_plus_expr, sub_svalue (, conjured_svalue (,
_iterator::_iterator (&__position, 0);, decl_region(globals, ‘struct Vector’,
‘Vector vec’)), field_region(decl_region(globals, ‘struct Vector’, ‘Vector
vec’), ‘int *’, ‘int* Vector::_M_finish’)), constant_svalue(‘sizetype’,
18446744073709551612))



Current m_equiv_classes dump:

---------------- new equiv_class ----------------
region_svalue(‘struct Vector *’, decl_region(globals, ‘struct Vector’, ‘Vector
vec’))

---------------- new equiv_class ----------------
constant_svalue(‘void *’, 0B)

---------------- new equiv_class ----------------
region_svalue(‘struct _iterator *’, decl_region(frame_region(‘Vector::Filter’,
index: 2, depth: 3), ‘struct _iterator’, ‘<anonymous>’))

---------------- new equiv_class ----------------
region_svalue(‘int * *’, field_region(decl_region(globals, ‘struct Vector’,
‘Vector vec’), ‘int *’, ‘int* Vector::_M_finish’))

---------------- new equiv_class ----------------
region_svalue(‘struct _iterator *’, decl_region(frame_region(‘Vector::Filter’,
index: 2, depth: 3), ‘struct _iterator’, ‘_iterator it’))

---------------- new equiv_class ----------------
sub_svalue (, conjured_svalue (, it = Vector::begin (this_10(D));,
decl_region(frame_region(‘Vector::Filter’, index: 2, depth: 3), ‘struct
_iterator’, ‘_iterator it’)),
field_region(decl_region(frame_region(‘Vector::Filter’, index: 2, depth: 3),
‘struct _iterator’, ‘_iterator it’), ‘int *’, ‘int* _iterator::_M_current’))

---------------- new equiv_class ----------------
sub_svalue (, conjured_svalue (, it = Vector::begin (this_10(D));,
decl_region(globals, ‘struct Vector’, ‘Vector vec’)),
cast_region(field_region(decl_region(globals, ‘struct Vector’, ‘Vector vec’),
‘int *’, ‘int* Vector::_M_finish’), ‘int * const’))

---------------- new equiv_class ----------------
region_svalue(‘struct _iterator *’, decl_region(frame_region(‘Vector::Filter’,
index: 2, depth: 3), ‘struct _iterator’, ‘<anonymous>’))

---------------- new equiv_class ----------------
region_svalue(‘struct iterator *’, decl_region(frame_region(‘Vector::Filter’,
index: 2, depth: 3), ‘struct iterator’, ‘iterator __position’))

---------------- new equiv_class ----------------
region_svalue(‘struct _iterator *’,
decl_region(frame_region(‘_iterator::operator+’, index: 3, depth: 4), ‘struct
_iterator’, ‘<anonymous>’))

---------------- new equiv_class ----------------
region_svalue(‘int * const *’, decl_region(frame_region(‘_iterator::operator+’,
index: 3, depth: 4), ‘int * const’, ‘<anonymous>’))

---------------- new equiv_class ----------------
region_svalue(‘struct _iterator *’, decl_region(frame_region(‘Vector::Filter’,
index: 2, depth: 3), ‘struct _iterator’, ‘<anonymous>’))

---------------- new equiv_class ----------------
binop_svalue (pointer_plus_expr, unaryop_svalue (nop_expr, conjured_svalue (,
_iterator::_iterator (&__position, 0);,
decl_region(frame_region(‘Vector::Filter’, index: 2, depth: 3), ‘struct
iterator’, ‘iterator __position’))), constant_svalue(‘long unsigned int’, 4))

---------------- new equiv_class ----------------
sub_svalue (, conjured_svalue (, _iterator::_iterator (&__position, 0);,
decl_region(globals, ‘struct Vector’, ‘Vector vec’)),
cast_region(field_region(decl_region(globals, ‘struct Vector’, ‘Vector vec’),
‘int *’, ‘int* Vector::_M_finish’), ‘int * const’))

---------------- new equiv_class ----------------
binop_svalue (pointer_plus_expr, sub_svalue (, conjured_svalue (,
_iterator::_iterator (&__position, 0);, decl_region(globals, ‘struct Vector’,
‘Vector vec’)), field_region(decl_region(globals, ‘struct Vector’, ‘Vector
vec’), ‘int *’, ‘int* Vector::_M_finish’)), constant_svalue(‘sizetype’,
18446744073709551612))

Reply via email to