[llvm] r295529 - Remove the is_trivially_copyable check entirely.

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 17 17:51:00 PST 2017


Author: zturner
Date: Fri Feb 17 19:51:00 2017
New Revision: 295529

URL: http://llvm.org/viewvc/llvm-project?rev=295529&view=rev
Log:
Remove the is_trivially_copyable check entirely.

This is still breaking builds because some compilers think
this type is not trivially copyable even when it should be.

Reverting this static_assert until I have time to investigate.

Modified:
    llvm/trunk/include/llvm/DebugInfo/MSF/StreamReader.h
    llvm/trunk/include/llvm/DebugInfo/MSF/StreamWriter.h

Modified: llvm/trunk/include/llvm/DebugInfo/MSF/StreamReader.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/MSF/StreamReader.h?rev=295529&r1=295528&r2=295529&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/MSF/StreamReader.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/MSF/StreamReader.h Fri Feb 17 19:51:00 2017
@@ -65,8 +65,6 @@ public:
   }
 
   template <typename T> Error readObject(const T *&Dest) {
-    static_assert(isPodLike<T>::value,
-                  "Can only read trivially copyable object types!");
     ArrayRef<uint8_t> Buffer;
     if (auto EC = readBytes(Buffer, sizeof(T)))
       return EC;
@@ -76,8 +74,6 @@ public:
 
   template <typename T>
   Error readArray(ArrayRef<T> &Array, uint32_t NumElements) {
-    static_assert(isPodLike<T>::value,
-                  "Can only read trivially copyable object types!");
     ArrayRef<uint8_t> Bytes;
     if (NumElements == 0) {
       Array = ArrayRef<T>();
@@ -104,8 +100,6 @@ public:
 
   template <typename T>
   Error readArray(FixedStreamArray<T> &Array, uint32_t NumItems) {
-    static_assert(isPodLike<T>::value,
-                  "Can only read trivially copyable object types!");
     if (NumItems == 0) {
       Array = FixedStreamArray<T>();
       return Error::success();

Modified: llvm/trunk/include/llvm/DebugInfo/MSF/StreamWriter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/MSF/StreamWriter.h?rev=295529&r1=295528&r2=295529&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/MSF/StreamWriter.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/MSF/StreamWriter.h Fri Feb 17 19:51:00 2017
@@ -17,7 +17,6 @@
 #include "llvm/DebugInfo/MSF/StreamRef.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
-#include "llvm/Support/type_traits.h"
 #include <cstdint>
 #include <type_traits>
 
@@ -62,15 +61,11 @@ public:
                   "writeObject should not be used with pointers, to write "
                   "the pointed-to value dereference the pointer before calling "
                   "writeObject");
-    static_assert(isPodLike<T>::value,
-                  "Can only serialize trivially copyable object types");
     return writeBytes(
         ArrayRef<uint8_t>(reinterpret_cast<const uint8_t *>(&Obj), sizeof(T)));
   }
 
   template <typename T> Error writeArray(ArrayRef<T> Array) {
-    static_assert(isPodLike<T>::value,
-                  "Can only serialize trivially copyable object types");
     if (Array.empty())
       return Error::success();
 
@@ -88,8 +83,6 @@ public:
   }
 
   template <typename T> Error writeArray(FixedStreamArray<T> Array) {
-    static_assert(isPodLike<T>::value,
-                  "Can only serialize trivially copyable object types");
     return writeStreamRef(Array.getUnderlyingStream());
   }
 




More information about the llvm-commits mailing list