i965: fix compiler error in union initiliazer
authorPekka Paalanen <pekka.paalanen@collabora.co.uk>
Thu, 14 Aug 2014 18:17:04 +0000 (21:17 +0300)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Thu, 14 Aug 2014 18:30:57 +0000 (21:30 +0300)
gcc 4.6.3 chokes with the following error:

brw_vec4.cpp: In member function 'int brw::vec4_visitor::setup_uniforms(int)':
brw_vec4.cpp:1496:37: error: expected primary-expression before '.' token

Apparently C++ does not do named initializers for unions, except maybe
as a gcc extension, which is not present here.

As .f is the first element of the union, just drop it. Fixes the build
error.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_vec4.cpp
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp

index 5f8f39971b9c00fa3db93c7cde4b7b7a153f679d..5d4a92c1de8cf6a9c1b69b657c408763c41db4c8 100644 (file)
@@ -1493,7 +1493,7 @@ vec4_visitor::setup_uniforms(int reg)
          reralloc(NULL, stage_prog_data->param, const gl_constant_value *, 4);
       for (unsigned int i = 0; i < 4; i++) {
         unsigned int slot = this->uniforms * 4 + i;
-        static gl_constant_value zero = { .f = 0.0 };
+        static gl_constant_value zero = { 0.0 };
         stage_prog_data->param[slot] = &zero;
       }
 
index 4863cae3618b167731a9029868e3c49595a13d51..ce64b301eeb221585a0d7ad47e6f5dab596cbc32 100644 (file)
@@ -695,7 +695,7 @@ vec4_visitor::setup_uniform_values(ir_variable *ir)
             components++;
          }
          for (; i < 4; i++) {
-            static gl_constant_value zero = { .f = 0.0 };
+            static gl_constant_value zero = { 0.0 };
             stage_prog_data->param[uniforms * 4 + i] = &zero;
          }