Assume p is not nullptr in storeUnaligned
authorChristopher Dykes <cdykes@fb.com>
Thu, 4 Aug 2016 22:05:50 +0000 (15:05 -0700)
committerFacebook Github Bot <facebook-github-bot-bot@fb.com>
Thu, 4 Aug 2016 22:08:34 +0000 (15:08 -0700)
commit41db97537ae4f6df251489640f517ceb1e2b7286
tree86f196385896c2581aaeef5e3625e66ccc170a7e
parentd89b4d34c1bb7d3dd7c1a8d6f2a58c148f0b122a
Assume p is not nullptr in storeUnaligned

Summary:
Because we're constructing the value with a placement new, which has some of C++'s most unhelpful behavior ever put into the spec: If `p` is `nullptr` and we are not compiling in C++14 mode, where the restriction was changed, then the placement new will do absolutely nothing at all. By adding the assumption that `p` is not `nullptr`, we'll trip a segfault in release mode rather than failing silently.
Note that MSVC would generate the nullptr check regardless of which mode it's in, so this assume forces the removal of the check.

Reviewed By: yfeldblum

Differential Revision: D3651116

fbshipit-source-id: ee15a38f85ce4e3cb3186fda0b7bcca39acda27a
folly/Bits.h