On 09/20/2016 04:51 PM, Scott Hess wrote:


No patch suggested, though I wouldn't be surprised if my brain makes a
suggestion after things simmer for an hour or so.  If either value
needs less than 31 bits, it can't happen, but there's not a simple bit
pattern to check, AFAICT.


Unless performance is of uttermost importance, just try and see if it fails or not.

prod = x * y;
if (y != 0) {
  if (prod / y != x) {
    /* Overflow. */
  }
}

This also works for multiplications such as 1152921504606846976 * 3, which do not overflow, but have much bigger multiplicands.

--
Bernardo Sulzbach
http://www.mafagafogigante.org/
mafagafogiga...@mafagafogigante.org
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to