ソースを参照

silence -Wclass-memaccess

Daniele Bartolini 7 年 前
コミット
6de05c4bc4

+ 4 - 4
src/core/containers/hash_map.h

@@ -130,11 +130,11 @@ namespace hash_map_internal
 
 	INSERT_AND_RETURN:
 		new (m._data + hash_i) typename HashMap<TKey, TValue, Hash>::Entry(*m._allocator);
-		memcpy(m._data + hash_i, &new_item, sizeof(new_item));
+		memcpy((void*)(m._data + hash_i), &new_item, sizeof(new_item));
 		m._index[hash_i].hash = hash;
 		m._index[hash_i].index = 0x0123abcd;
 		PAIR(TKey, TValue) empty(*m._allocator);
-		memcpy(&new_item, &empty, sizeof(new_item));
+		memcpy((void*)&new_item, &empty, sizeof(new_item));
 	}
 
 	template <typename TKey, typename TValue, typename Hash>
@@ -170,8 +170,8 @@ namespace hash_map_internal
 
 		HashMap<TKey, TValue, Hash> empty(*m._allocator);
 		m.~HashMap<TKey, TValue, Hash>();
-		memcpy(&m, &nm, sizeof(HashMap<TKey, TValue, Hash>));
-		memcpy(&nm, &empty, sizeof(HashMap<TKey, TValue, Hash>));
+		memcpy((void*)&m, (void*)&nm, sizeof(HashMap<TKey, TValue, Hash>));
+		memcpy((void*)&nm, (void*)&empty, sizeof(HashMap<TKey, TValue, Hash>));
 	}
 
 	template <typename TKey, typename TValue, typename Hash>

+ 12 - 12
src/core/pair.h

@@ -101,36 +101,36 @@ template <typename T1, typename T2>
 inline void swap(Pair<T1, T2, 0, 0>& a, Pair<T1, T2, 0, 0>& b)
 {
 	char c[sizeof(a)];
-	memcpy( c, &a, sizeof(a));
-	memcpy(&a, &b, sizeof(a));
-	memcpy(&b, &c, sizeof(a));
+	memcpy((void*) c, (void*)&a, sizeof(a));
+	memcpy((void*)&a, (void*)&b, sizeof(a));
+	memcpy((void*)&b, (void*)&c, sizeof(a));
 }
 
 template <typename T1, typename T2>
 inline void swap(Pair<T1, T2, 0, 1>& a, Pair<T1, T2, 0, 1>& b)
 {
 	char c[sizeof(a)];
-	memcpy( c, &a, sizeof(a));
-	memcpy(&a, &b, sizeof(a));
-	memcpy(&b, &c, sizeof(a));
+	memcpy((void*) c, (void*)&a, sizeof(a));
+	memcpy((void*)&a, (void*)&b, sizeof(a));
+	memcpy((void*)&b, (void*)&c, sizeof(a));
 }
 
 template <typename T1, typename T2>
 inline void swap(Pair<T1, T2, 1, 0>& a, Pair<T1, T2, 1, 0>& b)
 {
 	char c[sizeof(a)];
-	memcpy( c, &a, sizeof(a));
-	memcpy(&a, &b, sizeof(a));
-	memcpy(&b, &c, sizeof(a));
+	memcpy((void*) c, (void*)&a, sizeof(a));
+	memcpy((void*)&a, (void*)&b, sizeof(a));
+	memcpy((void*)&b, (void*)&c, sizeof(a));
 }
 
 template <typename T1, typename T2>
 inline void swap(Pair<T1, T2, 1, 1>& a, Pair<T1, T2, 1, 1>& b)
 {
 	char c[sizeof(a)];
-	memcpy( c, &a, sizeof(a));
-	memcpy(&a, &b, sizeof(a));
-	memcpy(&b, &c, sizeof(a));
+	memcpy((void*) c, (void*)&a, sizeof(a));
+	memcpy((void*)&a, (void*)&b, sizeof(a));
+	memcpy((void*)&b, (void*)&c, sizeof(a));
 }
 
 } // namespace crown

+ 1 - 1
src/resource/mesh_resource.cpp

@@ -95,7 +95,7 @@ namespace mesh_resource_internal
 
 			aabb::reset(_aabb);
 			memset(&_obb, 0, sizeof(_obb));
-			memset(&_decl, 0, sizeof(_decl));
+			memset((void*)&_decl, 0, sizeof(_decl));
 
 			_has_normal = false;
 			_has_uv = false;

+ 1 - 1
src/resource/physics_resource.cpp

@@ -120,7 +120,7 @@ namespace physics_resource_internal
 			);
 
 		ColliderDesc cd;
-		memset(&cd, 0, sizeof(cd));
+		memset((void*)&cd, 0, sizeof(cd));
 		cd.type        = st;
 		cd.material    = sjson::parse_string_id(obj["material"]);
 		cd.local_tm    = MATRIX4X4_IDENTITY;