<div dir="ltr">On 23 August 2013 13:55, Brian Paul <span dir="ltr"><<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 08/23/2013 02:39 PM, Matt Turner wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Fri, Aug 23, 2013 at 1:24 PM, Brian Paul <<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br>
  src/glsl/ast_to_hir.cpp |    3 +++<br>
  1 file changed, 3 insertions(+)<br>
<br>
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp<br>
index feff586..24efec6 100644<br>
--- a/src/glsl/ast_to_hir.cpp<br>
+++ b/src/glsl/ast_to_hir.cpp<br>
@@ -1933,6 +1933,9 @@ validate_binding_qualifier(<u></u>struct _mesa_glsl_parse_state *state,<br>
        case fragment_shader:<br>
           limit = ctx->Const.FragmentProgram.<u></u>MaxTextureImageUnits;<br>
           break;<br>
+      default:<br>
+         limit = 0;<br>
+         assert(!"Unexpected shader type");<br>
        }<br>
<br>
        if (max_index >= limit) {<br>
--<br>
1.7.10.4<br>
</blockquote>
<br>
I can't see why this would be necessary, since the switch statement<br>
switches over a variable of type _mesa_glsl_parser_targets, and the<br>
switch has cases for all elements in the enum.<br>
<br>
enum _mesa_glsl_parser_targets {<br>
    vertex_shader,<br>
    geometry_shader,<br>
    fragment_shader<br>
};<br>
<br>
</blockquote>
<br></div></div>
gcc 4.8.1 on Fedora 19:<br>
<br>
../../../src/glsl/ast_to_hir.<u></u>cpp: In function 'void apply_type_qualifier_to_<u></u>variable(const ast_type_qualifier*, ir_variable*, _mesa_glsl_parse_state*, YYLTYPE*, bool, bool)':<br>
../../../src/glsl/ast_to_hir.<u></u>cpp:1917:66: warning: 'limit' may be used uninitialized in this function [-Wmaybe-uninitialized]<br>
                           "(%d)", qual->binding, elements, limit);<br>
                                                                  ^<br>
../../../src/glsl/ast_to_hir.<u></u>cpp:1901:16: note: 'limit' was declared here<br>
       unsigned limit;<br>
                ^<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div>In that case, let's fix it by initializing limit to 0 at its declaration.  That way we will get a (helpful) compiler warning in the inevitable future event that we add new values to _mesa_glsl_parser_targets.<br>
</div></div></div></div>