A trivial test case requires guard variable but it need not

The feature is thread safe function local static variables. I think
this is mandated by the standard, but perhaps there is a switch to turn
it off?

We do support some environments which don't provide guard variables.
The recent changes for constexpr have caused a regression where
Fariborz's example initializer, which is not actually a constant-expression
under C++11 rules because it involves a reinterpret_cast, now requires
a guard variable. Obviously, we just need to tweak the constant
evaluator so that it handles this case when aggressively evaluating
constants for the purposes of, e.g., IR-generation.