https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112683
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|target |middle-end --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- # RANGE [irange] long unsigned int [1, 16] MASK 0x1f VALUE 0x0 _2 = _1 + 1; # PT = nonlocal _3 = &__str_5(D)->_M_local_bufD.4676; # .MEM_7 = VDEF <.MEM_6> memcpyD.1403 (&<retval>._M_local_bufD.4676, _3, _2); The range information is there already for _2. Note the hugely expanded out instructions is a target issue though.