diff --git a/3rdparty/glsl-optimizer/src/glsl/standalone_scaffolding.cpp b/3rdparty/glsl-optimizer/src/glsl/standalone_scaffolding.cpp
index 6e738119..2d014b47 100644
--- a/3rdparty/glsl-optimizer/src/glsl/standalone_scaffolding.cpp
+++ b/3rdparty/glsl-optimizer/src/glsl/standalone_scaffolding.cpp
@@ -36,21 +36,20 @@
 
 
 void
-_mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
+_mesa_reference_shader(struct gl_context *, struct gl_shader **ptr,
                        struct gl_shader *sh)
 {
-   (void) ctx;
    *ptr = sh;
 }
 
 void
-_mesa_shader_debug(struct gl_context *, GLenum, GLuint *id,
+_mesa_shader_debug(struct gl_context *, GLenum, GLuint *,
                    const char *, int)
 {
 }
 
 extern "C" void
-_mesa_error_no_memory(const char *caller)
+_mesa_error_no_memory(const char *)
 {
 }
 
diff --git a/scripts/shaderc.lua b/scripts/shaderc.lua
index fff8fe5c..d9b864c6 100644
--- a/scripts/shaderc.lua
+++ b/scripts/shaderc.lua
@@ -35,6 +35,9 @@ project "shaderc"
 		buildoptions {
 			"-fno-strict-aliasing" -- glsl-optimizer has bugs if strict aliasing is used.
 		}
+		removebuildoptions {
+			"-Wshadow", -- glsl-optimizer is full of -Wshadow warnings ignore it.
+		}
 
 	configuration { "osx" }
 		links {
@@ -51,7 +54,7 @@ project "shaderc"
 			"$(DXSDK_DIR)/include",
 		}
 
-	
+
 	configuration { "windows" }
 		links {
 			"d3dx9",
diff --git a/tools/geometryc/geometryc.cpp b/tools/geometryc/geometryc.cpp
index f748e5c7..ccf6a580 100644
--- a/tools/geometryc/geometryc.cpp
+++ b/tools/geometryc/geometryc.cpp
@@ -724,9 +724,9 @@ int main(int _argc, const char* _argv[])
 		{
 			hasTexcoord = true;
 
-			for (Index3Map::iterator it = indexMap.begin(), itEnd = indexMap.end(); it != itEnd; ++it)
+			for (Index3Map::iterator jt = indexMap.begin(), jtEnd = indexMap.end(); jt != jtEnd; ++jt)
 			{
-				it->second.m_texcoord = it->second.m_position;
+				jt->second.m_texcoord = jt->second.m_position;
 			}
 		}
 
@@ -735,9 +735,9 @@ int main(int _argc, const char* _argv[])
 		{
 			hasNormal = true;
 
-			for (Index3Map::iterator it = indexMap.begin(), itEnd = indexMap.end(); it != itEnd; ++it)
+			for (Index3Map::iterator jt = indexMap.begin(), jtEnd = indexMap.end(); jt != jtEnd; ++jt)
 			{
-				it->second.m_normal = it->second.m_position;
+				jt->second.m_normal = jt->second.m_position;
 			}
 		}
 	}
@@ -848,14 +848,14 @@ int main(int _argc, const char* _argv[])
 				triReorderElapsed -= bx::getHPCounter();
 				for (PrimitiveArray::const_iterator primIt = primitives.begin(); primIt != primitives.end(); ++primIt)
 				{
-					const Primitive& prim = *primIt;
-					triangleReorder(indexData + prim.m_startIndex, prim.m_numIndices, numVertices, 32);
+					const Primitive& prim1 = *primIt;
+					triangleReorder(indexData + prim1.m_startIndex, prim1.m_numIndices, numVertices, 32);
 					if (compress)
 					{
 						triangleCompress(&memWriter
-							, indexData  + prim.m_startIndex
-							, prim.m_numIndices
-							, vertexData + prim.m_startVertex
+							, indexData  + prim1.m_startIndex
+							, prim1.m_numIndices
+							, vertexData + prim1.m_startVertex
 							, numVertices
 							, stride
 							);
@@ -968,14 +968,14 @@ int main(int _argc, const char* _argv[])
 		triReorderElapsed -= bx::getHPCounter();
 		for (PrimitiveArray::const_iterator primIt = primitives.begin(); primIt != primitives.end(); ++primIt)
 		{
-			const Primitive& prim = *primIt;
-			triangleReorder(indexData + prim.m_startIndex, prim.m_numIndices, numVertices, 32);
+			const Primitive& prim1 = *primIt;
+			triangleReorder(indexData + prim1.m_startIndex, prim1.m_numIndices, numVertices, 32);
 			if (compress)
 			{
 				triangleCompress(&memWriter
-					, indexData  + prim.m_startIndex
-					, prim.m_numIndices
-					, vertexData + prim.m_startVertex
+					, indexData  + prim1.m_startIndex
+					, prim1.m_numIndices
+					, vertexData + prim1.m_startVertex
 					, numVertices
 					, stride
 					);