mesa: Silence compiler warnings on Windows.
diff --git a/src/mesa/shader/prog_execute.c b/src/mesa/shader/prog_execute.c
index abb143c..4745211 100644
--- a/src/mesa/shader/prog_execute.c
+++ b/src/mesa/shader/prog_execute.c
@@ -716,7 +716,7 @@
                 * result.z = result.x * APPX(result.y)
                 * We do what the ARB extension says.
                 */
-               q[2] = pow(2.0, t[0]);
+               q[2] = (GLfloat) pow(2.0, t[0]);
             }
             q[1] = t[0] - floor_t0;
             q[3] = 1.0F;
diff --git a/src/mesa/shader/prog_parameter.c b/src/mesa/shader/prog_parameter.c
index afdd7e5..b302442 100644
--- a/src/mesa/shader/prog_parameter.c
+++ b/src/mesa/shader/prog_parameter.c
@@ -319,6 +319,7 @@
       return (GLint) paramList->ParameterValues[i][0];
    }
    else {
+      GLuint i;
       const GLint size = 1; /* a sampler is basically a texture unit number */
       GLfloat value;
       GLint numSamplers = 0;
diff --git a/src/mesa/shader/prog_print.c b/src/mesa/shader/prog_print.c
index 11f82c1..014d08f 100644
--- a/src/mesa/shader/prog_print.c
+++ b/src/mesa/shader/prog_print.c
@@ -363,7 +363,7 @@
       _mesa_printf(".xyzw\n");
    }
    else {
-      char *s = _mesa_swizzle_string(swizzle, 0, 0);
+      const char *s = _mesa_swizzle_string(swizzle, 0, 0);
       _mesa_printf("%s\n", s);
    }
 }
diff --git a/src/mesa/shader/prog_statevars.c b/src/mesa/shader/prog_statevars.c
index 7e444de..81bb412 100644
--- a/src/mesa/shader/prog_statevars.c
+++ b/src/mesa/shader/prog_statevars.c
@@ -249,7 +249,7 @@
       value[1] = ctx->Fog.Start;
       value[2] = ctx->Fog.End;
       value[3] = (ctx->Fog.End == ctx->Fog.Start)
-         ? 1.0 : (GLfloat)(1.0 / (ctx->Fog.End - ctx->Fog.Start));
+         ? 1.0f : (GLfloat)(1.0 / (ctx->Fog.End - ctx->Fog.Start));
       return;
    case STATE_CLIPPLANE:
       {
@@ -409,9 +409,9 @@
                = ctx->Texture.Unit[unit]._Current;
             if (texObj) {
                struct gl_texture_image *texImage = texObj->Image[0][0];
-               ASSIGN_4V(value, 1.0 / texImage->Width,
+               ASSIGN_4V(value, (GLfloat) (1.0 / texImage->Width),
                          (GLfloat)(1.0 / texImage->Height),
-                         0.0, 1.0);
+                         0.0f, 1.0f);
             }
          }
          return;
@@ -425,7 +425,7 @@
           * exp2: 2^-((density/(ln(2)^2) * fogcoord)^2)
           */
          value[0] = (ctx->Fog.End == ctx->Fog.Start)
-            ? 1.0 : (GLfloat)(-1.0F / (ctx->Fog.End - ctx->Fog.Start));
+            ? 1.0f : (GLfloat)(-1.0F / (ctx->Fog.End - ctx->Fog.Start));
          value[1] = ctx->Fog.End * -value[0];
          value[2] = (GLfloat)(ctx->Fog.Density * ONE_DIV_LN2);
          value[3] = (GLfloat)(ctx->Fog.Density * ONE_DIV_SQRT_LN2);
diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c
index c1fbcde..53bf210 100644
--- a/src/mesa/shader/shader_api.c
+++ b/src/mesa/shader/shader_api.c
@@ -969,7 +969,7 @@
       = _mesa_lookup_shader_program(ctx, program);
    if (shProg) {
       if (shProg->Uniforms &&
-          location >= 0 && location < shProg->Uniforms->NumUniforms) {
+          location >= 0 && location < (GLint) shProg->Uniforms->NumUniforms) {
          GLint progPos;
          GLuint i;
          const struct gl_program *prog = NULL;
@@ -1217,7 +1217,7 @@
       /* ordinary uniform variable */
       GLsizei k, i;
 
-      if (count * elems > program->Parameters->Parameters[location].Size) {
+      if (count * elems > (GLint) program->Parameters->Parameters[location].Size) {
          _mesa_error(ctx, GL_INVALID_OPERATION, "glUniform(count too large)");
          return;
       }
@@ -1367,7 +1367,7 @@
    if (location == -1)
       return;   /* The standard specifies this as a no-op */
 
-   if (location < 0 || location >= shProg->Uniforms->NumUniforms) {
+   if (location < 0 || location >= (GLint) shProg->Uniforms->NumUniforms) {
       _mesa_error(ctx, GL_INVALID_VALUE, "glUniformMatrix(location)");
       return;
    }
diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c
index af45dfb..425beef 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -2623,7 +2623,7 @@
 
       index = (GLint) oper->children[1].literal[0];
       if (oper->children[1].type != SLANG_OPER_LITERAL_INT ||
-          index >= max) {
+          index >= (GLint) max) {
          slang_info_log_error(A->log, "Invalid array index for vector type");
          return NULL;
       }
diff --git a/src/mesa/shader/slang/slang_print.c b/src/mesa/shader/slang/slang_print.c
index ff9c62c..f08c25f 100644
--- a/src/mesa/shader/slang/slang_print.c
+++ b/src/mesa/shader/slang/slang_print.c
@@ -241,7 +241,7 @@
 void
 slang_print_tree(const slang_operation *op, int indent)
 {
-   int i;
+   GLuint i;
 
    switch (op->type) {
 
@@ -261,13 +261,10 @@
    case SLANG_OPER_BLOCK_NEW_SCOPE:
       spaces(indent);
       printf("{{ // new scope  locals=%p: ", (void*)op->locals);
-      {
-         int i;
-         for (i = 0; i < op->locals->num_variables; i++) {
-            printf("%s ", (char *) op->locals->variables[i]->a_name);
-         }
-         printf("\n");
+      for (i = 0; i < op->locals->num_variables; i++) {
+         printf("%s ", (char *) op->locals->variables[i]->a_name);
       }
+      printf("\n");
       print_generic(op, NULL, indent+3);
       spaces(indent);
       printf("}}\n");
@@ -665,7 +662,7 @@
 void
 slang_print_function(const slang_function *f, GLboolean body)
 {
-   int i;
+   GLuint i;
 
 #if 0
    if (_mesa_strcmp((char *) f->header.a_name, "main") != 0)
diff --git a/src/mesa/shader/slang/slang_simplify.c b/src/mesa/shader/slang/slang_simplify.c
index 158d6bc..88ca83d 100644
--- a/src/mesa/shader/slang/slang_simplify.c
+++ b/src/mesa/shader/slang/slang_simplify.c
@@ -76,7 +76,7 @@
    for (i = 0; info[i].Name; i++) {
       if (strcmp(info[i].Name, name) == 0) {
          /* found */
-         GLint value = -1.0;
+         GLint value = -1;
          _mesa_GetIntegerv(info[i].Token, &value);
          ASSERT(value >= 0);  /* sanity check that glGetFloatv worked */
          return value / info[i].Divisor;
@@ -110,7 +110,7 @@
          oper->literal[0] =
          oper->literal[1] =
          oper->literal[2] =
-         oper->literal[3] = value;
+         oper->literal[3] = (GLfloat) value;
          oper->type = SLANG_OPER_LITERAL_INT;
          return;
       }
@@ -380,7 +380,7 @@
                                        &origArg);
                   callOper->children[i + j].children[1].type
                      = SLANG_OPER_LITERAL_INT;
-                  callOper->children[i + j].children[1].literal[0] = j;
+                  callOper->children[i + j].children[1].literal[0] = (GLfloat) j;
                }
 
             }
@@ -394,11 +394,11 @@
       }
    }
 
-   if (callOper->num_children < numParams) {
+   if (callOper->num_children < (GLuint) numParams) {
       /* still not enough args for all params */
       return GL_FALSE;
    }
-   else if (callOper->num_children > numParams) {
+   else if (callOper->num_children > (GLuint) numParams) {
       /* now too many arguments */
       /* XXX this isn't always an error, see spec */
       return GL_FALSE;
diff --git a/src/mesa/shader/slang/slang_vartable.c b/src/mesa/shader/slang/slang_vartable.c
index bb4d2d6..7bc92ea 100644
--- a/src/mesa/shader/slang/slang_vartable.c
+++ b/src/mesa/shader/slang/slang_vartable.c
@@ -129,7 +129,7 @@
       /* just verify that any remaining allocations in this scope 
        * were for temps
        */
-      for (i = 0; i < vt->MaxRegisters * 4; i++) {
+      for (i = 0; i < (int) vt->MaxRegisters * 4; i++) {
          if (t->Temps[i] != FREE && t->Parent->Temps[i] == FREE) {
             if (dbg) printf("  Free reg %d\n", i/4);
             assert(t->Temps[i] == TEMP);
@@ -206,7 +206,7 @@
 
    for (i = 0; i <= vt->MaxRegisters * 4 - size; i += step) {
       GLuint found = 0;
-      for (j = 0; j < size; j++) {
+      for (j = 0; j < (GLuint) size; j++) {
          if (i + j < vt->MaxRegisters * 4 && t->Temps[i + j] == FREE) {
             found++;
          }
@@ -218,7 +218,7 @@
          /* found block of size free regs */
          if (size > 1)
             assert(i % 4 == 0);
-         for (j = 0; j < size; j++)
+         for (j = 0; j < (GLuint) size; j++)
             t->Temps[i + j] = isTemp ? TEMP : VAR;
          assert(i < MAX_PROGRAM_TEMPS * 4);
          t->ValSize[i] = size;
@@ -313,7 +313,7 @@
    else {
       /*assert(store->Swizzle == SWIZZLE_NOOP);*/
       assert(t->ValSize[r*4] == store->Size);
-      for (i = 0; i < store->Size; i++) {
+      for (i = 0; i < (GLuint) store->Size; i++) {
          assert(t->Temps[r * 4 + i] == TEMP);
          t->Temps[r * 4 + i] = FREE;
       }
@@ -327,7 +327,7 @@
    struct table *t = vt->Top;
    GLuint comp;
    assert(store->Index >= 0);
-   assert(store->Index < vt->MaxRegisters);
+   assert(store->Index < (int) vt->MaxRegisters);
    if (store->Swizzle == SWIZZLE_NOOP)
       comp = 0;
    else