When a was an array type, __decay_copy(a) was incorrectly marking itself noexcept(false), because it is false that int[10] is nothrow convertible to int[10] (in fact it is not convertible at all).
We have no tests explicitly for __decay_copy, but the new ranges::begin and ranges::end tests fail before this patch.
Actually, it occurs to me that several things are probably wrong here and we should just fix them all at once.
and replace all our usages throughout the codebase right now?
I have a vested interest because D115607 adds a ton of __decay_copy calls. :)