https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- # xp_1(ab) = PHI <xp_3(2), xp_7(ab)(4)> base: if (x_5(D) != 0) goto <bb 5>; else goto <bb 4>; <bb 4>: xp.0_6 = xp_1(ab); xp_7(ab) = xp.0_6 + 4; _15 = __builtin_object_size (ip_8(D), 0); _16 = ip_8(D); UBSAN_OBJECT_SIZE (_16, 4, _15, 0); _9 = *ip_8(D); _17 = __builtin_object_size (xp_1(ab), 0); ... _13 = &base + _12; gotovar.1_14 = _13; goto gotovar.1_14; xp_1 and xp_7 are life at the same time - the above is from 017t.ubsan. You may not refer to xp_1(ab) but should use xp.0_6 here.