diff --git a/shared/OpenglCodecCommon/GLClientState.h b/shared/OpenglCodecCommon/GLClientState.h
index 675cea4..491fb73 100644
--- a/shared/OpenglCodecCommon/GLClientState.h
+++ b/shared/OpenglCodecCommon/GLClientState.h
@@ -146,9 +146,9 @@
 
     struct VAOState {
         VAOState(GLuint ibo, int nLoc, int nBindings) :
-            element_array_buffer_binding(ibo),
             attribState(nLoc),
-            bindingState(nBindings) { }
+            bindingState(nBindings),
+            element_array_buffer_binding(ibo) { }
         VertexAttribStateVector attribState;
         VertexAttribBindingVector bindingState;
         GLuint element_array_buffer_binding;
diff --git a/shared/OpenglCodecCommon/IndexRangeCache.h b/shared/OpenglCodecCommon/IndexRangeCache.h
index f19bd24..5f77958 100644
--- a/shared/OpenglCodecCommon/IndexRangeCache.h
+++ b/shared/OpenglCodecCommon/IndexRangeCache.h
@@ -75,10 +75,8 @@
             primitiveRestartEnabled(_primitiveRestart) { }
 
         bool operator<(const IndexRangeKey& rhs) const {
-            size_t start = offset;
             size_t start_other = rhs.offset;
             size_t end = offset + count * glSizeof(type);
-            size_t end_other = rhs.offset + rhs.count * glSizeof(rhs.type);
 
             if (end <= start_other) {
                 return true;
diff --git a/shared/OpenglCodecCommon/SocketStream.cpp b/shared/OpenglCodecCommon/SocketStream.cpp
index f7a2314..e813142 100644
--- a/shared/OpenglCodecCommon/SocketStream.cpp
+++ b/shared/OpenglCodecCommon/SocketStream.cpp
@@ -112,7 +112,6 @@
 
 const unsigned char *SocketStream::readFully(void *buf, size_t len)
 {
-    const unsigned char* ret = NULL;
     if (!valid()) return NULL;
     if (!buf) {
       return NULL;  // do not allow NULL buf in that implementation
diff --git a/system/GLESv1_enc/GLEncoder.cpp b/system/GLESv1_enc/GLEncoder.cpp
index b698fae..8db973f 100644
--- a/system/GLESv1_enc/GLEncoder.cpp
+++ b/system/GLESv1_enc/GLEncoder.cpp
@@ -752,8 +752,6 @@
         GLenum target, GLenum pname, GLfloat* params)
 {
     GLEncoder* ctx = (GLEncoder*)self;
-    const GLClientState* state = ctx->m_state;
-
     if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
         ctx->override2DTextureTarget(target);
         ctx->m_glGetTexParameterfv_enc(ctx, GL_TEXTURE_2D, pname, params);
@@ -767,7 +765,6 @@
         GLenum target, GLenum pname, GLint* params)
 {
     GLEncoder* ctx = (GLEncoder*)self;
-    const GLClientState* state = ctx->m_state;
 
     switch (pname) {
     case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES:
@@ -790,7 +787,6 @@
         GLenum target, GLenum pname, GLfixed* params)
 {
     GLEncoder* ctx = (GLEncoder*)self;
-    const GLClientState* state = ctx->m_state;
 
     if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
         ctx->override2DTextureTarget(target);
@@ -824,7 +820,6 @@
         GLenum target, GLenum pname, GLfloat param)
 {
     GLEncoder* ctx = (GLEncoder*)self;
-    const GLClientState* state = ctx->m_state;
 
     SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
             !isValidTextureExternalParam(pname, (GLenum)param)),
@@ -843,7 +838,6 @@
         GLenum target, GLenum pname, const GLfloat* params)
 {
     GLEncoder* ctx = (GLEncoder*)self;
-    const GLClientState* state = ctx->m_state;
 
     SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
             !isValidTextureExternalParam(pname, (GLenum)params[0])),
@@ -862,7 +856,6 @@
         GLenum target, GLenum pname, GLint param)
 {
     GLEncoder* ctx = (GLEncoder*)self;
-    const GLClientState* state = ctx->m_state;
 
     SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
             !isValidTextureExternalParam(pname, (GLenum)param)),
@@ -881,7 +874,6 @@
         GLenum target, GLenum pname, GLfixed param)
 {
     GLEncoder* ctx = (GLEncoder*)self;
-    const GLClientState* state = ctx->m_state;
 
     SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
             !isValidTextureExternalParam(pname, (GLenum)param)),
@@ -900,7 +892,6 @@
         GLenum target, GLenum pname, const GLint* params)
 {
     GLEncoder* ctx = (GLEncoder*)self;
-    const GLClientState* state = ctx->m_state;
 
     SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
             !isValidTextureExternalParam(pname, (GLenum)params[0])),
@@ -919,7 +910,6 @@
         GLenum target, GLenum pname, const GLfixed* params)
 {
     GLEncoder* ctx = (GLEncoder*)self;
-    const GLClientState* state = ctx->m_state;
 
     SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
             !isValidTextureExternalParam(pname, (GLenum)params[0])),
diff --git a/system/GLESv2_enc/GLESv2Validation.cpp b/system/GLESv2_enc/GLESv2Validation.cpp
index c96d489..f736e23 100644
--- a/system/GLESv2_enc/GLESv2Validation.cpp
+++ b/system/GLESv2_enc/GLESv2Validation.cpp
@@ -55,7 +55,6 @@
 
 bool bufferParam(GL2Encoder* ctx, GLenum pname) {
     int glesMajorVersion = ctx->majorVersion();
-    int glesMinorVersion = ctx->minorVersion();
     switch (pname) {
     case GL_BUFFER_SIZE:
     case GL_BUFFER_USAGE:
@@ -289,7 +288,7 @@
     return retval;
 }
 
-bool readPixelsFboFormatMatch(GLenum format, GLenum type, GLenum fboTexType) {
+bool readPixelsFboFormatMatch(GLenum, GLenum type, GLenum fboTexType) {
 #define INVALID_TYPE_MATCH(x, y) \
     if (type == x && fboTexType == y) return false; \
     if (type == y && fboTexType == x) return false; \
@@ -591,7 +590,7 @@
     return false;
 }
 
-bool depthRenderableFormat(GL2Encoder* ctx, GLenum internalformat) {
+bool depthRenderableFormat(GL2Encoder*, GLenum internalformat) {
     switch (internalformat) {
     case GL_DEPTH_COMPONENT:
     case GL_DEPTH_STENCIL:
@@ -605,7 +604,7 @@
     return false;
 }
 
-bool stencilRenderableFormat(GL2Encoder* ctx, GLenum internalformat) {
+bool stencilRenderableFormat(GL2Encoder*, GLenum internalformat) {
     switch (internalformat) {
     case GL_DEPTH_STENCIL:
     case GL_STENCIL_INDEX8:
diff --git a/system/egl/egl.cpp b/system/egl/egl.cpp
index dca98f3..6480736 100644
--- a/system/egl/egl.cpp
+++ b/system/egl/egl.cpp
@@ -282,7 +282,7 @@
     void        setTextureTarget(EGLint _texTarget) { texTarget = _texTarget; }
     EGLint      getTextureTarget() { return texTarget; }
 
-    virtual     void setCollectingTimestamps(EGLint collect) { }
+    virtual     void setCollectingTimestamps(EGLint) { }
     virtual     EGLint isCollectingTimestamps() const { return EGL_FALSE; }
     EGLint      deletePending;
     void        setIsCurrent(bool isCurrent) { mIsCurrent = isCurrent; }
@@ -312,8 +312,8 @@
 };
 
 egl_surface_t::egl_surface_t(EGLDisplay dpy, EGLConfig config, EGLint surfaceType)
-    : dpy(dpy), config(config), surfaceType(surfaceType), rcSurface(0),
-      deletePending(0), mIsCurrent(false)
+    : dpy(dpy), config(config), deletePending(0), mIsCurrent(false),
+      surfaceType(surfaceType), rcSurface(0)
 {
     width = 0;
     height = 0;
@@ -712,14 +712,14 @@
     int extStart = 0;
     int extEnd = 0;
     int currentExtIndex = 0;
-    int numExts = 0;
 
     if (sWantES30OrAbove(hostStr) &&
         !strstr(hostStr, kOESEGLImageExternalEssl3)) {
         res.push_back(kOESEGLImageExternalEssl3);
     }
 
-    while (extEnd < strlen(hostStr)) {
+    const int hostStrLen = strlen(hostStr);
+    while (extEnd < hostStrLen) {
         if (hostStr[extEnd] == ' ') {
             int extSz = extEnd - extStart;
             res.push_back(std::string(hostStr + extStart, extSz));
@@ -777,7 +777,7 @@
         std::vector<std::string> exts = getExtStringArray();
 
         int totalSz = 1; // null terminator
-        for (int i = 0; i < exts.size(); i++) {
+        for (unsigned int i = 0; i < exts.size(); i++) {
             totalSz += exts[i].size() + 1; // for space
         }
 
@@ -787,7 +787,7 @@
         memset(hostStr, 0, totalSz);
 
         char* current = hostStr;
-        for (int i = 0; i < exts.size(); i++) {
+        for (unsigned int i = 0; i < exts.size(); i++) {
             memcpy(current, exts[i].c_str(), exts[i].size());
             current += exts[i].size();
             *current = ' ';
@@ -819,8 +819,8 @@
 // ----------------------------------------------------------------------------
 
 static EGLClient_eglInterface s_eglIface = {
-    getThreadInfo: getEGLThreadInfo,
-    getGLString: getGLString,
+    .getThreadInfo = getEGLThreadInfo,
+    .getGLString = getGLString,
 };
 
 #define DBG_FUNC DBG("%s\n", __FUNCTION__)
@@ -1103,7 +1103,6 @@
     VALIDATE_DISPLAY_INIT(dpy, EGL_FALSE);
     VALIDATE_SURFACE_RETURN(eglSurface, EGL_FALSE);
 
-    EGLThreadInfo* tInfo = getEGLThreadInfo();
     egl_surface_t* surface(static_cast<egl_surface_t*>(eglSurface));
     if (surface->isCurrent()) {
         surface->deletePending = 1;
@@ -1436,7 +1435,6 @@
     EGLint minorVersion = 0;
     EGLint context_flags = 0;
     EGLint profile_mask = 0;
-    EGLint reset_notification_strategy = 0;
 
     bool wantedMajorVersion = false;
     bool wantedMinorVersion = false;
