Enable and fix the -Wshorten-64-to-32

BUG=angleproject:635

Change-Id: If09014508d5f4dfeb17ac946672a76a98b8ad175
Reviewed-on: https://chromium-review.googlesource.com/316580
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/common/mathutil.h b/src/common/mathutil.h
index 7aff8aa..a329d28 100644
--- a/src/common/mathutil.h
+++ b/src/common/mathutil.h
@@ -493,9 +493,10 @@
     return ((a ^ b) >> 1) + (a & b);
 }
 
-inline signed int average(signed int a, signed int b)
+inline int average(int a, int b)
 {
-    return ((long long)a + (long long)b) / 2;
+    long long average = (static_cast<long long>(a) + static_cast<long long>(b)) / 2ll;
+    return static_cast<int>(average);
 }
 
 inline float average(float a, float b)
diff --git a/src/libANGLE/renderer/gl/StateManagerGL.cpp b/src/libANGLE/renderer/gl/StateManagerGL.cpp
index 9976e5b..037f5d5 100644
--- a/src/libANGLE/renderer/gl/StateManagerGL.cpp
+++ b/src/libANGLE/renderer/gl/StateManagerGL.cpp
@@ -1277,7 +1277,7 @@
 void StateManagerGL::syncState(const gl::State &state, const gl::State::DirtyBits &dirtyBits)
 {
     // TODO(jmadill): Investigate only syncing vertex state for active attributes
-    for (unsigned int dirtyBit : angle::IterateBitSet(dirtyBits | mLocalDirtyBits))
+    for (auto dirtyBit : angle::IterateBitSet(dirtyBits | mLocalDirtyBits))
     {
         switch (dirtyBit)
         {
diff --git a/src/libANGLE/renderer/gl/VertexArrayGL.cpp b/src/libANGLE/renderer/gl/VertexArrayGL.cpp
index 7085663..255b41f 100644
--- a/src/libANGLE/renderer/gl/VertexArrayGL.cpp
+++ b/src/libANGLE/renderer/gl/VertexArrayGL.cpp
@@ -232,7 +232,7 @@
     ASSERT(mAttributesNeedStreaming.any());
 
     const auto &attribs = mData.getVertexAttributes();
-    for (unsigned int idx : angle::IterateBitSet(mAttributesNeedStreaming & activeAttributesMask))
+    for (auto idx : angle::IterateBitSet(mAttributesNeedStreaming & activeAttributesMask))
     {
         const auto &attrib = attribs[idx];
         ASSERT(AttributeNeedsStreaming(attrib));
@@ -292,8 +292,7 @@
         size_t curBufferOffset = bufferEmptySpace;
 
         const auto &attribs = mData.getVertexAttributes();
-        for (unsigned int idx :
-             angle::IterateBitSet(mAttributesNeedStreaming & activeAttributesMask))
+        for (auto idx : angle::IterateBitSet(mAttributesNeedStreaming & activeAttributesMask))
         {
             const auto &attrib = attribs[idx];
             ASSERT(AttributeNeedsStreaming(attrib));
@@ -334,13 +333,14 @@
             {
                 ASSERT(!attrib.normalized);
                 mFunctions->vertexAttribIPointer(
-                    idx, attrib.size, attrib.type, static_cast<GLsizei>(destStride),
+                    static_cast<GLuint>(idx), attrib.size, attrib.type,
+                    static_cast<GLsizei>(destStride),
                     reinterpret_cast<const GLvoid *>(vertexStartOffset));
             }
             else
             {
                 mFunctions->vertexAttribPointer(
-                    idx, attrib.size, attrib.type, attrib.normalized,
+                    static_cast<GLuint>(idx), attrib.size, attrib.type, attrib.normalized,
                     static_cast<GLsizei>(destStride),
                     reinterpret_cast<const GLvoid *>(vertexStartOffset));
             }
diff --git a/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp b/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp
index 40c5e9b..b3fa1e2 100644
--- a/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp
+++ b/src/libANGLE/renderer/gl/glx/DisplayGLX.cpp
@@ -690,9 +690,9 @@
     }
 }
 
-bool DisplayGLX::isValidWindowVisualId(int visualId) const
+bool DisplayGLX::isValidWindowVisualId(unsigned long visualId) const
 {
-    return mRequestedVisual == -1 || mRequestedVisual == visualId;
+    return mRequestedVisual == -1 || static_cast<unsigned long>(mRequestedVisual) == visualId;
 }
 
 const FunctionsGL *DisplayGLX::getFunctionsGL() const
diff --git a/src/libANGLE/renderer/gl/glx/DisplayGLX.h b/src/libANGLE/renderer/gl/glx/DisplayGLX.h
index 7bce44d..41a985a 100644
--- a/src/libANGLE/renderer/gl/glx/DisplayGLX.h
+++ b/src/libANGLE/renderer/gl/glx/DisplayGLX.h
@@ -79,7 +79,7 @@
     // acts as expected.
     void setSwapInterval(glx::Drawable drawable, SwapControlData *data);
 
-    bool isValidWindowVisualId(int visualId) const;
+    bool isValidWindowVisualId(unsigned long visualId) const;
 
   private:
     const FunctionsGL *getFunctionsGL() const override;
diff --git a/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp b/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp
index c5c5cbe..b4c5fd6 100644
--- a/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp
+++ b/src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp
@@ -57,7 +57,7 @@
     {
         XWindowAttributes windowAttributes;
         XGetWindowAttributes(mDisplay, mParent, &windowAttributes);
-        int visualId = windowAttributes.visual->visualid;
+        unsigned long visualId = windowAttributes.visual->visualid;
 
         if (!mGLXDisplay->isValidWindowVisualId(visualId))
         {