Browse Source

Fix GCC warning with -Waggressive-loop-optimizations due to overflow

Hendrik Brucker 3 years ago
parent
commit
e41e2a1103
2 changed files with 32 additions and 0 deletions
  1. 9 0
      thirdparty/noise/FastNoiseLite.h
  2. 23 0
      thirdparty/noise/patches/FastNoiseLite.patch

+ 9 - 0
thirdparty/noise/FastNoiseLite.h

@@ -1611,6 +1611,12 @@ private:
         }
     }
 
+// GCC raises warnings when integer overflows occur, which are needed for hashing here.
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Waggressive-loop-optimizations"
+#endif
+
     template <typename FNfloat>
     float SingleCellular(int seed, FNfloat x, FNfloat y, FNfloat z) const
     {
@@ -1765,6 +1771,9 @@ private:
         }
     }
 
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
 
     // Perlin Noise
 

+ 23 - 0
thirdparty/noise/patches/FastNoiseLite.patch

@@ -430,3 +430,26 @@
      {
          x *= frequency;
          y *= frequency;
+@@ -1611,6 +1611,12 @@ private:
+         }
+     }
+ 
++// GCC raises warnings when integer overflows occur, which are needed for hashing here.
++#if defined(__GNUC__) && !defined(__clang__)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Waggressive-loop-optimizations"
++#endif
++
+     template <typename FNfloat>
+     float SingleCellular(int seed, FNfloat x, FNfloat y, FNfloat z) const
+     {
+@@ -1765,6 +1771,9 @@ private:
+         }
+     }
+ 
++#if defined(__GNUC__) && !defined(__clang__)
++#pragma GCC diagnostic pop
++#endif
+ 
+     // Perlin Noise
+