https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95862
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Are you specifically talking about the case where r is unused afterwards, aka about return __builtin_mul_overflow_p (a, b, (uint64_t) 0); ? In that case, the overflow is only if a and b have different signs, aka. (a ^ b) < 0.