folly/Conv.h: estimateSpaceNeeded: avoid undefined behavior
authorJim Meyering <meyering@fb.com>
Tue, 1 Dec 2015 05:17:20 +0000 (21:17 -0800)
committerfacebook-github-bot-0 <folly-bot@fb.com>
Tue, 1 Dec 2015 06:20:19 +0000 (22:20 -0800)
commit8d56fe688b6ca70a28dfcb733f7ac1b8fcd26eb4
tree821362afe916e1b99cba3fc1b2577613d206c6ac
parentd3a08687ca79f566693a41520124f8ba92ca185a
folly/Conv.h: estimateSpaceNeeded: avoid undefined behavior

Summary: Do not negate signed numbers like INT_MIN or INTMAX_MIN, since
that would evoke undefined behavior.  Otherwise, the test (below)
would fail with this run-time error:

  [ RUN      ] Conv.Integral2String
  folly/Conv.h:521:47: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself

Reviewed By: markisaa

Differential Revision: D2704195

fb-gh-sync-id: 4036437fb972109672004163880078127e7df797
folly/Conv.h