https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113907
--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Diffing the -fdump-{tree,ipa}-all-alias dumps from r14-5108 and r14-5109, 085i.fnsummary still looks good (the 2/4/8 in the ranges corresponds to whether it is in 16/32/64 suffixed/infixed function). But the inline dump already contains presumably bogus @@ -2426,7 +2426,7 @@ int32_t uprv_copyArray16 (const struct U goto <bb 12>; [67.00%] <bb 11> [local count: 43795362]: - # RANGE [irange] unsigned int [1, 2147483647] MASK 0x7ffffff8 VALUE 0x0 + # RANGE [irange] unsigned int [8, 2147483647] MASK 0x7ffffff8 VALUE 0x0 length.37_21 = (unsigned int) length_14(D); # USE = anything # CLB = anything @@ -2437,7 +2437,7 @@ int32_t uprv_copyArray16 (const struct U _7 = _25; <bb 13> [local count: 1073741824]: - # RANGE [irange] int32_t [0, +INF] MASK 0x7fffffff VALUE 0x0 + # RANGE [irange] int32_t [0, 0][2, +INF] MASK 0x7fffffff VALUE 0x0 # _6 = PHI <0(4), _7(12)> return _6; and @@ -2660,7 +2660,7 @@ int32_t uprv_copyArray32 (const struct U goto <bb 12>; [67.00%] <bb 11> [local count: 43795362]: - # RANGE [irange] unsigned int [1, 2147483647] MASK 0x7ffffff8 VALUE 0x0 + # RANGE [irange] unsigned int [8, 2147483647] MASK 0x7ffffff8 VALUE 0x0 length.37_21 = (unsigned int) length_14(D); # USE = anything # CLB = anything @@ -2671,7 +2671,7 @@ int32_t uprv_copyArray32 (const struct U _7 = _25; <bb 13> [local count: 1073741824]: - # RANGE [irange] int32_t [0, +INF] MASK 0x7fffffff VALUE 0x0 + # RANGE [irange] int32_t [0, 0][4, +INF] MASK 0x7fffffff VALUE 0x0 # _6 = PHI <0(4), _7(12)> return _6; hunks, the return in those cases looks still right, but the length before memcpy looks wrong.