Andres Freund <and...@anarazel.de> writes: > I just noticed, while reviewing a patch that corrects overflow handing > in snprintf, that we don't correctly handle INT64_MIN in snprintf.c:
Well, you still get the right answer, even if the "-value" is nominally undefined. > I suspect the best way to fix this, would be to instead do: > /* Handle +/- */ > if (dosign && adjust_sign((value < 0), forcesign, &signvalue); > uvalue = -(uint64) value; > else > uvalue = (uint64) value; Hm, what does -x mean for an unsigned value? I'm not really convinced this is conceptually better. regards, tom lane