Merge pull request #10831 from gottesmm/fix_createunsafecopyunowned_value

[silgen] Fix createUnsafeCopyUnownedValue to be correct from an ownership perspective.
diff --git a/include/swift/Basic/ExternalUnion.h b/include/swift/Basic/ExternalUnion.h
index 9901707..74381d3 100644
--- a/include/swift/Basic/ExternalUnion.h
+++ b/include/swift/Basic/ExternalUnion.h
@@ -23,7 +23,7 @@
 #define SWIFT_BASIC_EXTERNALUNION_H
 
 #include "llvm/Support/Compiler.h"
-#include <type_traits>
+#include "swift/Basic/type_traits.h"
 #include <utility>
 #include <assert.h>
 
@@ -339,7 +339,7 @@
 struct SpecialMembers<T, Others...> {
   enum : bool {
     is_trivially_copyable =
-      std::is_trivially_copyable<T>::value &&
+      IsTriviallyCopyable<T>::value &&
       SpecialMembers<Others...>::is_trivially_copyable
   };