From r229162:
Visual Studio's SAL extension uses a macro named __deallocate. This macro is used pervasively
Using -Werror when building for Windows can force the use of -Wno-#warnings
specifically because of this __deallocate #warning. Instead of forcing
builds to disable all #warnings, this option allows libc++ to be built
without this particular warning, while leaving other #warnings enabled.
I don't think that we should do this partially. Id rather have the behavior be identical across MSVC and not-MSVC. Please move this above the _MSC_VER check.