Hi! When memcpy has constant length, we leave probable_max_size uninitialized and later on create a CONST_INT out of it.
Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, committed to trunk as obvious. 2014-01-15 Jakub Jelinek <ja...@redhat.com> PR other/58712 * builtins.c (determine_block_size): Initialize *probable_max_size even if len_rtx is CONST_INT. --- gcc/builtins.c.jj 2014-01-13 13:26:37.000000000 +0100 +++ gcc/builtins.c 2014-01-13 18:21:13.299612871 +0100 @@ -3117,7 +3117,7 @@ determine_block_size (tree len, rtx len_ { if (CONST_INT_P (len_rtx)) { - *min_size = *max_size = UINTVAL (len_rtx); + *min_size = *max_size = *probable_max_size = UINTVAL (len_rtx); return; } else @@ -3131,7 +3131,8 @@ determine_block_size (tree len, rtx len_ else *min_size = 0; if (tree_fits_uhwi_p (TYPE_MAX_VALUE (TREE_TYPE (len)))) - *probable_max_size = *max_size = tree_to_uhwi (TYPE_MAX_VALUE (TREE_TYPE (len))); + *probable_max_size = *max_size + = tree_to_uhwi (TYPE_MAX_VALUE (TREE_TYPE (len))); else *probable_max_size = *max_size = GET_MODE_MASK (GET_MODE (len_rtx)); Jakub