Handle function name conflicts in _LIBCPP_MSVCRT mode

Visual Studio's SAL extension uses a macro named __deallocate. This macro is
used pervasively, and gets included through various different ways. This
conflicts with the similarly named interfaces in libc++. Introduce a undef
header similar to __undef_min_max to handle this. This fixes a number of errors
due to the macro replacing the function name.

llvm-svn: 229162
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 8e5ce331936f46e259acc03a81fd7d105429cc30
diff --git a/include/valarray b/include/valarray
index 2b94204..bdaa588 100644
--- a/include/valarray
+++ b/include/valarray
@@ -348,6 +348,7 @@
 #include <new>
 
 #include <__undef_min_max>
+#include <__undef___deallocate>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header