OSDN Git Service

Only use is_trivially_copyable if we know it's safe to do so.
authorZachary Turner <zturner@google.com>
Thu, 14 Dec 2017 19:11:28 +0000 (19:11 +0000)
committerZachary Turner <zturner@google.com>
Thu, 14 Dec 2017 19:11:28 +0000 (19:11 +0000)
Apparently this isn't present on older versions of libstdc++, so
it causes some builds to fail.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320733 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/DebugInfo/CodeView/TypeHashing.h

index af7af05..7413375 100644 (file)
@@ -132,11 +132,15 @@ struct GloballyHashedType {
     return Hashes;
   }
 };
+#if defined(_MSC_VER)
+// is_trivially_copyable is not available in older versions of libc++, but it is
+// available in all supported versions of MSVC, so at least this gives us some
+// coverage.
 static_assert(std::is_trivially_copyable<GloballyHashedType>::value,
               "GloballyHashedType must be trivially copyable so that we can "
               "reinterpret_cast arrays of hash data to arrays of "
               "GloballyHashedType");
-
+#endif
 } // namespace codeview
 
 template <> struct DenseMapInfo<codeview::LocallyHashedType> {