MOZ_STATIC_ASSERT(cond, reason) is #defined to the C++11 static_assert() whenever available; due to the variety of compilers we support, there are four separate #defines that do that, under a bunch of #ifdefs, in the present version of the file: <http://hg.mozilla.org/mozilla-central/file/9f29daaecbcc/mfbt/Assertions.h#l63>
Only one of those four definitions reads
# define MOZ_STATIC_ASSERT(cond, reason) static_assert((cond), reason)
the other three are
# define MOZ_STATIC_ASSERT(cond, reason) static_assert((cond), #cond)
making no use of 'reason'. This seems wrong.
Hmm, yeah, that was wrong, wasn't it. Thanks for pointing it out, fixed here (seems typo-land enough that it's not worth wasting someone's time reviewing it):