Browse Source

build: try to suppress an annoying false warning from gcc

skypjack 1 month ago
parent
commit
feb8333367
3 changed files with 42 additions and 1 deletions
  1. 0 1
      TODO
  2. 21 0
      test/entt/core/any.cpp
  3. 21 0
      test/entt/meta/meta_any.cpp

+ 0 - 1
TODO

@@ -13,7 +13,6 @@ TODO:
 * work stealing job system (see #100) + mt scheduler based on const awareness for types
 * combine version-mask-vs-version-bits tricks with reserved bits to allow things like enabling/disabling
 * auto type info data from types if present
-* suppress -Wself-move on CI with g++13
 * built-in no-pagination storage - no_pagination page size as limits::max
 * any cdynamic to support const ownership construction
 * meta non-const allow_cast overloads: (const int &) to (int &) is not allowed, but (const int &) to (double &) is allowed (support only for convertibles)

+ 21 - 0
test/entt/core/any.cpp

@@ -322,6 +322,10 @@ TEST_F(Any, SBOMoveAssignment) {
     ASSERT_EQ(entt::any_cast<int>(other), 2);
 }
 
+#if defined(__GNUC__)
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wself-move"
+#endif
 TEST_F(Any, SBOSelfMoveAssignment) {
     entt::any any{2};
 
@@ -334,6 +338,9 @@ TEST_F(Any, SBOSelfMoveAssignment) {
     ASSERT_EQ(any.info(), entt::type_id<int>());
     ASSERT_EQ(entt::any_cast<int>(any), 2);
 }
+#if defined(__GNUC__)
+#    pragma GCC diagnostic pop
+#endif
 
 TEST_F(Any, SBODirectAssignment) {
     entt::any any{};
@@ -647,6 +654,10 @@ TEST_F(Any, NoSBOMoveAssignment) {
     ASSERT_EQ(entt::any_cast<fat>(other), instance);
 }
 
+#if defined(__GNUC__)
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wself-move"
+#endif
 TEST_F(Any, NoSBOSelfMoveAssignment) {
     const fat instance{.1, .2, .3, .4};
     entt::any any{instance};
@@ -660,6 +671,9 @@ TEST_F(Any, NoSBOSelfMoveAssignment) {
     ASSERT_EQ(any.info(), entt::type_id<fat>());
     ASSERT_EQ(entt::any_cast<fat>(any), instance);
 }
+#if defined(__GNUC__)
+#    pragma GCC diagnostic pop
+#endif
 
 TEST_F(Any, NoSBODirectAssignment) {
     const fat instance{.1, .2, .3, .4};
@@ -861,6 +875,10 @@ TEST_F(Any, VoidMoveAssignment) {
     ASSERT_EQ(entt::any_cast<double>(&other), nullptr);
 }
 
+#if defined(__GNUC__)
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wself-move"
+#endif
 TEST_F(Any, VoidSelfMoveAssignment) {
     entt::any any{std::in_place_type<void>};
 
@@ -873,6 +891,9 @@ TEST_F(Any, VoidSelfMoveAssignment) {
     ASSERT_EQ(any.info(), entt::type_id<void>());
     ASSERT_EQ(any.data(), nullptr);
 }
+#if defined(__GNUC__)
+#    pragma GCC diagnostic pop
+#endif
 
 TEST_F(Any, SBOMoveValidButUnspecifiedState) {
     entt::any any{2};

+ 21 - 0
test/entt/meta/meta_any.cpp

@@ -410,6 +410,10 @@ TEST_F(MetaAny, SBOMoveAssignment) {
     ASSERT_NE(other, entt::meta_any{0});
 }
 
+#if defined(__GNUC__)
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wself-move"
+#endif
 TEST_F(MetaAny, SBOSelfMoveAssignment) {
     entt::meta_any any{3};
 
@@ -422,6 +426,9 @@ TEST_F(MetaAny, SBOSelfMoveAssignment) {
     ASSERT_EQ(any, entt::meta_any{3});
     ASSERT_NE(any, entt::meta_any{0});
 }
+#if defined(__GNUC__)
+#    pragma GCC diagnostic pop
+#endif
 
 TEST_F(MetaAny, SBODirectAssignment) {
     entt::meta_any any{};
@@ -746,6 +753,10 @@ TEST_F(MetaAny, NoSBOMoveAssignment) {
     ASSERT_NE(other, fat{});
 }
 
+#if defined(__GNUC__)
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wself-move"
+#endif
 TEST_F(MetaAny, NoSBOSelfMoveAssignment) {
     const fat instance{.1, .2, .3, .4};
     entt::meta_any any{instance};
@@ -759,6 +770,9 @@ TEST_F(MetaAny, NoSBOSelfMoveAssignment) {
     ASSERT_EQ(any, entt::meta_any{instance});
     ASSERT_NE(any, fat{});
 }
+#if defined(__GNUC__)
+#    pragma GCC diagnostic pop
+#endif
 
 TEST_F(MetaAny, NoSBODirectAssignment) {
     const fat instance{.1, .2, .3, .4};
@@ -1004,6 +1018,10 @@ TEST_F(MetaAny, VoidMoveAssignment) {
     ASSERT_EQ(other, entt::meta_any{std::in_place_type<void>});
 }
 
+#if defined(__GNUC__)
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wself-move"
+#endif
 TEST_F(MetaAny, VoidSelfMoveAssignment) {
     entt::meta_any any{std::in_place_type<void>};
 
@@ -1015,6 +1033,9 @@ TEST_F(MetaAny, VoidSelfMoveAssignment) {
     ASSERT_EQ(any.type(), entt::resolve<void>());
     ASSERT_EQ(any, entt::meta_any{std::in_place_type<void>});
 }
+#if defined(__GNUC__)
+#    pragma GCC diagnostic pop
+#endif
 
 TEST_F(MetaAny, SBOMoveInvalidate) {
     entt::meta_any any{3};