Browse Source

Fixed 64 bits constants warnings on GCC #463

Christophe Riccio 9 years ago
parent
commit
500a955d45
2 changed files with 52 additions and 51 deletions
  1. 49 49
      glm/gtc/bitfield.inl
  2. 3 2
      readme.md

+ 49 - 49
glm/gtc/bitfield.inl

@@ -138,25 +138,25 @@ namespace detail
 		glm::uint64 REG2(y);
 		glm::uint64 REG2(y);
 		glm::uint64 REG3(z);
 		glm::uint64 REG3(z);
 
 
-		REG1 = ((REG1 << 32) | REG1) & glm::uint64(0xFFFF00000000FFFF);
-		REG2 = ((REG2 << 32) | REG2) & glm::uint64(0xFFFF00000000FFFF);
-		REG3 = ((REG3 << 32) | REG3) & glm::uint64(0xFFFF00000000FFFF);
+		REG1 = ((REG1 << 32) | REG1) & glm::uint64(0xFFFF00000000FFFFull);
+		REG2 = ((REG2 << 32) | REG2) & glm::uint64(0xFFFF00000000FFFFull);
+		REG3 = ((REG3 << 32) | REG3) & glm::uint64(0xFFFF00000000FFFFull);
 
 
-		REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x00FF0000FF0000FF);
-		REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x00FF0000FF0000FF);
-		REG3 = ((REG3 << 16) | REG3) & glm::uint64(0x00FF0000FF0000FF);
+		REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x00FF0000FF0000FFull);
+		REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x00FF0000FF0000FFull);
+		REG3 = ((REG3 << 16) | REG3) & glm::uint64(0x00FF0000FF0000FFull);
 
 
-		REG1 = ((REG1 <<  8) | REG1) & glm::uint64(0xF00F00F00F00F00F);
-		REG2 = ((REG2 <<  8) | REG2) & glm::uint64(0xF00F00F00F00F00F);
-		REG3 = ((REG3 <<  8) | REG3) & glm::uint64(0xF00F00F00F00F00F);
+		REG1 = ((REG1 <<  8) | REG1) & glm::uint64(0xF00F00F00F00F00Full);
+		REG2 = ((REG2 <<  8) | REG2) & glm::uint64(0xF00F00F00F00F00Full);
+		REG3 = ((REG3 <<  8) | REG3) & glm::uint64(0xF00F00F00F00F00Full);
 
 
-		REG1 = ((REG1 <<  4) | REG1) & glm::uint64(0x30C30C30C30C30C3);
-		REG2 = ((REG2 <<  4) | REG2) & glm::uint64(0x30C30C30C30C30C3);
-		REG3 = ((REG3 <<  4) | REG3) & glm::uint64(0x30C30C30C30C30C3);
+		REG1 = ((REG1 <<  4) | REG1) & glm::uint64(0x30C30C30C30C30C3ull);
+		REG2 = ((REG2 <<  4) | REG2) & glm::uint64(0x30C30C30C30C30C3ull);
+		REG3 = ((REG3 <<  4) | REG3) & glm::uint64(0x30C30C30C30C30C3ull);
 
 
-		REG1 = ((REG1 <<  2) | REG1) & glm::uint64(0x9249249249249249);
-		REG2 = ((REG2 <<  2) | REG2) & glm::uint64(0x9249249249249249);
-		REG3 = ((REG3 <<  2) | REG3) & glm::uint64(0x9249249249249249);
+		REG1 = ((REG1 <<  2) | REG1) & glm::uint64(0x9249249249249249ull);
+		REG2 = ((REG2 <<  2) | REG2) & glm::uint64(0x9249249249249249ull);
+		REG3 = ((REG3 <<  2) | REG3) & glm::uint64(0x9249249249249249ull);
 
 
 		return REG1 | (REG2 << 1) | (REG3 << 2);
 		return REG1 | (REG2 << 1) | (REG3 << 2);
 	}
 	}
@@ -168,25 +168,25 @@ namespace detail
 		glm::uint64 REG2(y);
 		glm::uint64 REG2(y);
 		glm::uint64 REG3(z);
 		glm::uint64 REG3(z);
 
 
-		REG1 = ((REG1 << 32) | REG1) & glm::uint64(0xFFFF00000000FFFF);
-		REG2 = ((REG2 << 32) | REG2) & glm::uint64(0xFFFF00000000FFFF);
-		REG3 = ((REG3 << 32) | REG3) & glm::uint64(0xFFFF00000000FFFF);
+		REG1 = ((REG1 << 32) | REG1) & glm::uint64(0xFFFF00000000FFFFull);
+		REG2 = ((REG2 << 32) | REG2) & glm::uint64(0xFFFF00000000FFFFull);
+		REG3 = ((REG3 << 32) | REG3) & glm::uint64(0xFFFF00000000FFFFull);
 
 
-		REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x00FF0000FF0000FF);
-		REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x00FF0000FF0000FF);
-		REG3 = ((REG3 << 16) | REG3) & glm::uint64(0x00FF0000FF0000FF);
+		REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x00FF0000FF0000FFull);
+		REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x00FF0000FF0000FFull);
+		REG3 = ((REG3 << 16) | REG3) & glm::uint64(0x00FF0000FF0000FFull);
 
 
-		REG1 = ((REG1 <<  8) | REG1) & glm::uint64(0xF00F00F00F00F00F);
-		REG2 = ((REG2 <<  8) | REG2) & glm::uint64(0xF00F00F00F00F00F);
-		REG3 = ((REG3 <<  8) | REG3) & glm::uint64(0xF00F00F00F00F00F);
+		REG1 = ((REG1 <<  8) | REG1) & glm::uint64(0xF00F00F00F00F00Full);
+		REG2 = ((REG2 <<  8) | REG2) & glm::uint64(0xF00F00F00F00F00Full);
+		REG3 = ((REG3 <<  8) | REG3) & glm::uint64(0xF00F00F00F00F00Full);
 
 
-		REG1 = ((REG1 <<  4) | REG1) & glm::uint64(0x30C30C30C30C30C3);
-		REG2 = ((REG2 <<  4) | REG2) & glm::uint64(0x30C30C30C30C30C3);
-		REG3 = ((REG3 <<  4) | REG3) & glm::uint64(0x30C30C30C30C30C3);
+		REG1 = ((REG1 <<  4) | REG1) & glm::uint64(0x30C30C30C30C30C3ull);
+		REG2 = ((REG2 <<  4) | REG2) & glm::uint64(0x30C30C30C30C30C3ull);
+		REG3 = ((REG3 <<  4) | REG3) & glm::uint64(0x30C30C30C30C30C3ull);
 
 
-		REG1 = ((REG1 <<  2) | REG1) & glm::uint64(0x9249249249249249);
-		REG2 = ((REG2 <<  2) | REG2) & glm::uint64(0x9249249249249249);
-		REG3 = ((REG3 <<  2) | REG3) & glm::uint64(0x9249249249249249);
+		REG1 = ((REG1 <<  2) | REG1) & glm::uint64(0x9249249249249249ull);
+		REG2 = ((REG2 <<  2) | REG2) & glm::uint64(0x9249249249249249ull);
+		REG3 = ((REG3 <<  2) | REG3) & glm::uint64(0x9249249249249249ull);
 
 
 		return REG1 | (REG2 << 1) | (REG3 << 2);
 		return REG1 | (REG2 << 1) | (REG3 << 2);
 	}
 	}
@@ -225,25 +225,25 @@ namespace detail
 		glm::uint64 REG3(z);
 		glm::uint64 REG3(z);
 		glm::uint64 REG4(w);
 		glm::uint64 REG4(w);
 
 
-		REG1 = ((REG1 << 24) | REG1) & glm::uint64(0x000000FF000000FF);
-		REG2 = ((REG2 << 24) | REG2) & glm::uint64(0x000000FF000000FF);
-		REG3 = ((REG3 << 24) | REG3) & glm::uint64(0x000000FF000000FF);
-		REG4 = ((REG4 << 24) | REG4) & glm::uint64(0x000000FF000000FF);
-
-		REG1 = ((REG1 << 12) | REG1) & glm::uint64(0x000F000F000F000F);
-		REG2 = ((REG2 << 12) | REG2) & glm::uint64(0x000F000F000F000F);
-		REG3 = ((REG3 << 12) | REG3) & glm::uint64(0x000F000F000F000F);
-		REG4 = ((REG4 << 12) | REG4) & glm::uint64(0x000F000F000F000F);
-
-		REG1 = ((REG1 <<  6) | REG1) & glm::uint64(0x0303030303030303);
-		REG2 = ((REG2 <<  6) | REG2) & glm::uint64(0x0303030303030303);
-		REG3 = ((REG3 <<  6) | REG3) & glm::uint64(0x0303030303030303);
-		REG4 = ((REG4 <<  6) | REG4) & glm::uint64(0x0303030303030303);
-
-		REG1 = ((REG1 <<  3) | REG1) & glm::uint64(0x1111111111111111);
-		REG2 = ((REG2 <<  3) | REG2) & glm::uint64(0x1111111111111111);
-		REG3 = ((REG3 <<  3) | REG3) & glm::uint64(0x1111111111111111);
-		REG4 = ((REG4 <<  3) | REG4) & glm::uint64(0x1111111111111111);
+		REG1 = ((REG1 << 24) | REG1) & glm::uint64(0x000000FF000000FFull);
+		REG2 = ((REG2 << 24) | REG2) & glm::uint64(0x000000FF000000FFull);
+		REG3 = ((REG3 << 24) | REG3) & glm::uint64(0x000000FF000000FFull);
+		REG4 = ((REG4 << 24) | REG4) & glm::uint64(0x000000FF000000FFull);
+
+		REG1 = ((REG1 << 12) | REG1) & glm::uint64(0x000F000F000F000Full);
+		REG2 = ((REG2 << 12) | REG2) & glm::uint64(0x000F000F000F000Full);
+		REG3 = ((REG3 << 12) | REG3) & glm::uint64(0x000F000F000F000Full);
+		REG4 = ((REG4 << 12) | REG4) & glm::uint64(0x000F000F000F000Full);
+
+		REG1 = ((REG1 <<  6) | REG1) & glm::uint64(0x0303030303030303ull);
+		REG2 = ((REG2 <<  6) | REG2) & glm::uint64(0x0303030303030303ull);
+		REG3 = ((REG3 <<  6) | REG3) & glm::uint64(0x0303030303030303ull);
+		REG4 = ((REG4 <<  6) | REG4) & glm::uint64(0x0303030303030303ull);
+
+		REG1 = ((REG1 <<  3) | REG1) & glm::uint64(0x1111111111111111ull);
+		REG2 = ((REG2 <<  3) | REG2) & glm::uint64(0x1111111111111111ull);
+		REG3 = ((REG3 <<  3) | REG3) & glm::uint64(0x1111111111111111ull);
+		REG4 = ((REG4 <<  3) | REG4) & glm::uint64(0x1111111111111111ull);
 
 
 		return REG1 | (REG2 << 1) | (REG3 << 2) | (REG4 << 3);
 		return REG1 | (REG2 << 1) | (REG3 << 2) | (REG4 << 3);
 	}
 	}

+ 3 - 2
readme.md

@@ -57,8 +57,9 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
 
 
 ##### Fixes:
 ##### Fixes:
 - Fixed CMake policy warning
 - Fixed CMake policy warning
-- Fixed GCC 6.0 detection
-- Fixed Clang build on Windows
+- Fixed GCC 6.0 detection #477
+- Fixed Clang build on Windows #479
+- Fixed 64 bits constants warnings on GCC #463
 
 
 #### [GLM 0.9.7.2](https://github.com/g-truc/glm/releases/tag/0.9.7.2) - 2016-01-03
 #### [GLM 0.9.7.2](https://github.com/g-truc/glm/releases/tag/0.9.7.2) - 2016-01-03
 ##### Fixes:
 ##### Fixes: