Apologies, please ignore the aside: > An aside: the same function has this check "((I->Offset + > (int64_t(1)<<31)) >> 32)" -- won't this cause a signed overflow (and > hence UB) if I->Offset is negative? The overflow won't be a *signed overflow*, so we're okay. -- Sanjoy