On 04/18/2014 07:50 AM, Tom Musta wrote: > + uint64_t unsig; > + if (in >= 0) { > + unsig = in; > + } else { /* negative (possibly BADINT) */ > + if (in == INT64_MIN) { > + unsig = 1ull << 63; /* special case */ > + } else { > + unsig = -in; /* invert */ > + } > + }
I know the other code you imported does this but... ug. How about just uint64_t unsig = in; if (in < 0) { unsig = -unsig; } which neatly handles the INT_MIN thing in a defined way. r~