Mesa (master): mesa: Silence narrowing warnings in ff_fragment_shader' s emit_texenv().

Kenneth Graunke kwg at kemper.freedesktop.org
Mon Sep 24 05:47:31 UTC 2012


Module: Mesa
Branch: master
Commit: c432c86e6aeebeb46c028af940224c59faa16e88
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c432c86e6aeebeb46c028af940224c59faa16e88

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Sun Sep 23 22:38:58 2012 -0700

mesa: Silence narrowing warnings in ff_fragment_shader's emit_texenv().

Recent version of GCC report a warning for the implicit conversion from
int to float:

  ff_fragment_shader.cpp:897:3: warning: narrowing conversion of '(1 << ((int)rgb_shift))' from 'int' to 'float' inside { } is ill-formed in C++11 [-Wnarrowing]

This is because floats cannot precisely represent all possible 32-bit
integer values.  However, texenv code is all expected to be floating
point, so this should not be a problem.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/main/ff_fragment_shader.cpp |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/ff_fragment_shader.cpp b/src/mesa/main/ff_fragment_shader.cpp
index e850d47..f21cf80 100644
--- a/src/mesa/main/ff_fragment_shader.cpp
+++ b/src/mesa/main/ff_fragment_shader.cpp
@@ -890,10 +890,10 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit)
       }
       else {
 	 float const_data[4] = {
-	    1 << rgb_shift,
-	    1 << rgb_shift,
-	    1 << rgb_shift,
-	    1 << alpha_shift
+	    float(1 << rgb_shift),
+	    float(1 << rgb_shift),
+	    float(1 << rgb_shift),
+	    float(1 << alpha_shift)
 	 };
 	 shift = new(p->mem_ctx) ir_constant(glsl_type::vec4_type,
 					     (ir_constant_data *)const_data);




More information about the mesa-commit mailing list