Em seg., 31 de ago. de 2020 às 16:39, Peter Geoghegan <pg@bowt.ie> escreveu:
On Mon, Aug 31, 2020 at 11:42 AM Andres Freund <andres@anarazel.de> wrote: > Unsigned integer overflow is well defined in the standard. So I don't understand what this is purporting to warn about.
Presumably it's simply warning that the value -4294901760 (i.e. the result of 3 - 4294901763) cannot be faithfully represented as an unsigned int. This is true, of course. It's just not relevant.
I'm pretty sure that UBSan does not actually state that this is undefined behavior. At least Ranier's sample output didn't seem to indicate it.
4294901763 can not store at unsigned int (TransactionID is uint32_t).
TransactionId id2 at TransactionIdPrecedes already has an overflow, before anything is done.