1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00

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.

llvm-svn: 295529
This commit is contained in:
Zachary Turner 2017-02-18 01:51:00 +00:00
parent dae3265b27
commit 86a381ea10
2 changed files with 0 additions and 13 deletions

View File

@ -65,8 +65,6 @@ public:
} }
template <typename T> Error readObject(const T *&Dest) { template <typename T> Error readObject(const T *&Dest) {
static_assert(isPodLike<T>::value,
"Can only read trivially copyable object types!");
ArrayRef<uint8_t> Buffer; ArrayRef<uint8_t> Buffer;
if (auto EC = readBytes(Buffer, sizeof(T))) if (auto EC = readBytes(Buffer, sizeof(T)))
return EC; return EC;
@ -76,8 +74,6 @@ public:
template <typename T> template <typename T>
Error readArray(ArrayRef<T> &Array, uint32_t NumElements) { Error readArray(ArrayRef<T> &Array, uint32_t NumElements) {
static_assert(isPodLike<T>::value,
"Can only read trivially copyable object types!");
ArrayRef<uint8_t> Bytes; ArrayRef<uint8_t> Bytes;
if (NumElements == 0) { if (NumElements == 0) {
Array = ArrayRef<T>(); Array = ArrayRef<T>();
@ -104,8 +100,6 @@ public:
template <typename T> template <typename T>
Error readArray(FixedStreamArray<T> &Array, uint32_t NumItems) { Error readArray(FixedStreamArray<T> &Array, uint32_t NumItems) {
static_assert(isPodLike<T>::value,
"Can only read trivially copyable object types!");
if (NumItems == 0) { if (NumItems == 0) {
Array = FixedStreamArray<T>(); Array = FixedStreamArray<T>();
return Error::success(); return Error::success();

View File

@ -17,7 +17,6 @@
#include "llvm/DebugInfo/MSF/StreamRef.h" #include "llvm/DebugInfo/MSF/StreamRef.h"
#include "llvm/Support/Endian.h" #include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h" #include "llvm/Support/Error.h"
#include "llvm/Support/type_traits.h"
#include <cstdint> #include <cstdint>
#include <type_traits> #include <type_traits>
@ -62,15 +61,11 @@ public:
"writeObject should not be used with pointers, to write " "writeObject should not be used with pointers, to write "
"the pointed-to value dereference the pointer before calling " "the pointed-to value dereference the pointer before calling "
"writeObject"); "writeObject");
static_assert(isPodLike<T>::value,
"Can only serialize trivially copyable object types");
return writeBytes( return writeBytes(
ArrayRef<uint8_t>(reinterpret_cast<const uint8_t *>(&Obj), sizeof(T))); ArrayRef<uint8_t>(reinterpret_cast<const uint8_t *>(&Obj), sizeof(T)));
} }
template <typename T> Error writeArray(ArrayRef<T> Array) { template <typename T> Error writeArray(ArrayRef<T> Array) {
static_assert(isPodLike<T>::value,
"Can only serialize trivially copyable object types");
if (Array.empty()) if (Array.empty())
return Error::success(); return Error::success();
@ -88,8 +83,6 @@ public:
} }
template <typename T> Error writeArray(FixedStreamArray<T> Array) { template <typename T> Error writeArray(FixedStreamArray<T> Array) {
static_assert(isPodLike<T>::value,
"Can only serialize trivially copyable object types");
return writeStreamRef(Array.getUnderlyingStream()); return writeStreamRef(Array.getUnderlyingStream());
} }