https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123978
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
With --param ranger-debug=all I see
1 range_of_expr(_6) at stmt __builtin_memset (_1, 0, _8);
2 range_of_stmt (_6) at stmt _6 = _2 w* _4;
3 range_of_expr(_2) at stmt _6 = _2 w* _4;
4 range_of_stmt (_2) at stmt _2 = a_10(D)->b;
TRUE : (4) range_of_stmt (_2) [irange] unsigned int VARYING
TRUE : (3) range_of_expr (_2) [irange] unsigned int VARYING
5 range_of_expr(_4) at stmt _6 = _2 w* _4;
6 range_of_stmt (_4) at stmt _4 = a_10(D)->c;
TRUE : (6) range_of_stmt (_4) [irange] unsigned int VARYING
TRUE : (5) range_of_expr (_4) [irange] unsigned int VARYING
GLOBAL : UPDATE cache for _6 in BB 2 : successors : : No updates!
TRUE : (2) range_of_stmt (_6) [irange] long long int [0, 0] MASK 0x0
VALUE 0x0
TRUE : (1) range_of_expr (_6) [irange] long long int [0, 0] MASK 0x0
VALUE 0x0
7 range_of_expr(_8) at stmt __builtin_memset (_1, 0, _8);
8 range_of_stmt (_8) at stmt _8 = (long unsigned int) _7;
9 ROS dependence fill
ROS dep fill (_8) at stmt _8 = (long unsigned int) _7;
ROS dep fill (_7) at stmt _7 = _6 * 4;
10 range_of_expr(_6) at stmt _7 = _6 * 4;
TRUE : (10) range_of_expr (_6) [irange] long long int [0, 0]
MASK 0x0 VALUE 0x0
GLOBAL : UPDATE cache for _7 in BB 2 : successors : : No updates!
FALSE : (9) ROS (_8)
11 range_of_expr(_7) at stmt _8 = (long unsigned int) _7;
TRUE : (11) range_of_expr (_7) [irange] long long int [0, 0] MASK
0x0 VALUE 0x0
GLOBAL : UPDATE cache for _8 in BB 2 : successors : : No updates!
TRUE : (8) range_of_stmt (_8) [irange] long unsigned int [0, 0] MASK
0x0 VALUE 0x0
TRUE : (7) range_of_expr (_8) [irange] long unsigned int [0, 0] MASK
0x0 VALUE 0x0