[ATL] Suppress GCC8 warning in RelocateElements, fix build.
authorVictor Perevertkin <victor@perevertkin.ru>
Wed, 30 Oct 2019 23:44:20 +0000 (02:44 +0300)
committerVictor Perevertkin <victor@perevertkin.ru>
Wed, 30 Oct 2019 23:44:20 +0000 (02:44 +0300)
modules/rostests/apitests/atl/CAtlArray.cpp
sdk/lib/atl/atlcoll.h

index ef7828e..8d4bc70 100644 (file)
@@ -6,11 +6,6 @@
  *              Copyright 2019 Mark Jansen (mark.jansen@reactos.org)
  */
 
-#if defined(__GNUC__) && __GNUC__ >= 7
-// this is an intended behaviour
-#pragma GCC diagnostic ignored "-Wclass-memaccess"
-#endif
-
 #ifdef HAVE_APITEST
     #include <apitest.h>
 #else
index 73feb75..6775a02 100644 (file)
@@ -99,7 +99,18 @@ public:
         _In_reads_(NumElements) T* Source,
         _In_ size_t NumElements)
     {
+        // A simple memmove works for most of the types.
+        // You'll have to override this for types that have pointers to their
+        // own members.
+
+#if defined(__GNUC__) && __GNUC__ >= 8
+    #pragma GCC diagnostic push
+    #pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
         memmove(Dest, Source, NumElements * sizeof(T));
+#if defined(__GNUC__) && __GNUC__ >= 8
+    #pragma GCC diagnostic pop
+#endif
     }
 };