Suppress some warnings on linux.

R=reed@google.com
Review URL: https://codereview.appspot.com/6572046

git-svn-id: http://skia.googlecode.com/svn/trunk@5687 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp
index df3d3a5..bdb89ca 100644
--- a/bench/MathBench.cpp
+++ b/bench/MathBench.cpp
@@ -110,9 +110,9 @@
 
 static inline float SkFastInvSqrt(float x) {
     float xhalf = 0.5f*x;
-    int i = *(int*)&x;
+    int i = *SkTCast<int*>(&x);
     i = 0x5f3759df - (i>>1);
-    x = *(float*)&i;
+    x = *SkTCast<float*>(&i);
     x = x*(1.5f-xhalf*x*x);
 //    x = x*(1.5f-xhalf*x*x); // this line takes err from 10^-3 to 10^-6
     return x;
diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp
index dd5041d..12e456a 100644
--- a/bench/PathBench.cpp
+++ b/bench/PathBench.cpp
@@ -272,13 +272,15 @@
                     path->lineTo(fPoints[(fCurrPoint++) & (kNumPoints - 1)]);
                     break;
                 case SkPath::kQuad_Verb:
-                    path->quadTo(fPoints[(fCurrPoint++) & (kNumPoints - 1)],
-                                 fPoints[(fCurrPoint++) & (kNumPoints - 1)]);
+                    path->quadTo(fPoints[(fCurrPoint + 0) & (kNumPoints - 1)],
+                                 fPoints[(fCurrPoint + 1) & (kNumPoints - 1)]);
+                    fCurrPoint += 2;
                     break;
                 case SkPath::kCubic_Verb:
-                    path->cubicTo(fPoints[(fCurrPoint++) & (kNumPoints - 1)],
-                                  fPoints[(fCurrPoint++) & (kNumPoints - 1)],
-                                  fPoints[(fCurrPoint++) & (kNumPoints - 1)]);
+                    path->cubicTo(fPoints[(fCurrPoint + 0) & (kNumPoints - 1)],
+                                  fPoints[(fCurrPoint + 1) & (kNumPoints - 1)],
+                                  fPoints[(fCurrPoint + 2) & (kNumPoints - 1)]);
+                    fCurrPoint += 3;
                     break;
                 case SkPath::kClose_Verb:
                     path->close();
diff --git a/include/core/SkScalar.h b/include/core/SkScalar.h
index 4c3bdb2..f357e6a 100644
--- a/include/core/SkScalar.h
+++ b/include/core/SkScalar.h
@@ -40,7 +40,7 @@
     #define SK_ScalarHalf           (0.5f)
     /** SK_ScalarInfinity is defined to be infinity as an SkScalar
     */
-    #define SK_ScalarInfinity           (*(const float*)&gIEEEInfinity)
+    #define SK_ScalarInfinity           (*SkTCast<const float*>(&gIEEEInfinity))
     /** SK_ScalarMax is defined to be the largest value representable as an SkScalar
     */
     #define SK_ScalarMax            (3.402823466e+38f)
@@ -49,7 +49,7 @@
     #define SK_ScalarMin            (-SK_ScalarMax)
     /** SK_ScalarNaN is defined to be 'Not a Number' as an SkScalar
     */
-    #define SK_ScalarNaN      (*(const float*)(const void*)&gIEEENotANumber)
+    #define SK_ScalarNaN      (*SkTCast<const float*>(&gIEEENotANumber))
     /** SkScalarIsNaN(n) returns true if argument is not a number
     */
     static inline bool SkScalarIsNaN(float x) { return x != x; }
diff --git a/src/utils/SkCamera.cpp b/src/utils/SkCamera.cpp
index 7d6963c..11e10f6 100644
--- a/src/utils/SkCamera.cpp
+++ b/src/utils/SkCamera.cpp
@@ -269,13 +269,13 @@
     fAxis.normalize(&axis);
 
     {
-        SkScalar dot = SkUnit3D::Dot(*(const SkUnit3D*)(const void*)&fZenith, axis);
+        SkScalar dot = SkUnit3D::Dot(*SkTCast<const SkUnit3D*>(&fZenith), axis);
 
         zenith.fX = fZenith.fX - SkUnitScalarMul(dot, axis.fX);
         zenith.fY = fZenith.fY - SkUnitScalarMul(dot, axis.fY);
         zenith.fZ = fZenith.fZ - SkUnitScalarMul(dot, axis.fZ);
 
-        (void)((SkPoint3D*)(void*)&zenith)->normalize(&zenith);
+        SkTCast<SkPoint3D*>(&zenith)->normalize(&zenith);
     }
 
     SkUnit3D::Cross(axis, zenith, &cross);
@@ -313,8 +313,8 @@
     diff.fY = quilt.fOrigin.fY - fLocation.fY;
     diff.fZ = quilt.fOrigin.fZ - fLocation.fZ;
 
-    dot = SkUnit3D::Dot(*(const SkUnit3D*)(const void*)&diff,
-                        *(const SkUnit3D*)(((const SkScalar*)(const void*)&fOrientation) + 6));
+    dot = SkUnit3D::Dot(*SkTCast<const SkUnit3D*>(&diff),
+                        *SkTCast<const SkUnit3D*>(SkTCast<const SkScalar*>(&fOrientation) + 6));
 
     patchPtr = (const SkScalar*)&quilt;
     matrix->set(SkMatrix::kMScaleX, SkScalarDotDiv(3, patchPtr, 1, mapPtr, 1, dot));
diff --git a/src/views/animated/SkStaticTextView.cpp b/src/views/animated/SkStaticTextView.cpp
index 8ab1183..199b2fe 100644
--- a/src/views/animated/SkStaticTextView.cpp
+++ b/src/views/animated/SkStaticTextView.cpp
@@ -154,25 +154,29 @@
     this->INHERITED::onInflate(dom, node);
 
     int    index;
-    if ((index = dom.findList(node, "mode", "fixed,auto-width,auto-height")) >= 0)
+    if ((index = dom.findList(node, "mode", "fixed,auto-width,auto-height")) >= 0) {
         this->setMode((Mode)index);
-    else
+    } else {
         assert_no_attr(dom, node, "mode");
+    }
 
-    if ((index = dom.findList(node, "spacing-align", "start,center,end")) >= 0)
+    if ((index = dom.findList(node, "spacing-align", "start,center,end")) >= 0) {
         this->setSpacingAlign((SkTextBox::SpacingAlign)index);
-    else
+    } else {
         assert_no_attr(dom, node, "spacing-align");
+    }
 
     SkScalar s[2];
-    if (dom.findScalars(node, "margin", s, 2))
+    if (dom.findScalars(node, "margin", s, 2)) {
         this->setMargin(s[0], s[1]);
-    else
+    } else {
         assert_no_attr(dom, node, "margin");
+    }
 
     const char* text = dom.findAttr(node, "text");
-    if (text)
+    if (text) {
         this->setText(text);
+    }
 
     if ((node = dom.getFirstChild(node, "paint")) != NULL &&
         (node = dom.getFirstChild(node, "screenplay")) != NULL)
diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp
index 086b737..c0babee 100644
--- a/tests/MathTest.cpp
+++ b/tests/MathTest.cpp
@@ -184,14 +184,14 @@
  */
 static bool equal_float_native_skia(float x, uint32_t ni, uint32_t si) {
     if (!(x == x)) {    // NAN
-        return si == SK_MaxS32 || si == SK_MinS32;
+        return ((int32_t)si) == SK_MaxS32 || ((int32_t)si) == SK_MinS32;
     }
     // for out of range, C is undefined, but skia always should return NaN32
     if (x > SK_MaxS32) {
-        return si == SK_MaxS32;
+        return ((int32_t)si) == SK_MaxS32;
     }
     if (x < -SK_MaxS32) {
-        return si == SK_MinS32;
+        return ((int32_t)si) == SK_MinS32;
     }
     return si == ni;
 }
diff --git a/tests/MatrixTest.cpp b/tests/MatrixTest.cpp
index 30542dc..744f765 100644
--- a/tests/MatrixTest.cpp
+++ b/tests/MatrixTest.cpp
@@ -44,8 +44,8 @@
             for (int i = 0; i < 9; ++i) {
                 float aVal = a.get(i);
                 float bVal = b.get(i);
-                int aValI = *reinterpret_cast<int*>(&aVal);
-                int bValI = *reinterpret_cast<int*>(&bVal);
+                int aValI = *SkTCast<int*>(&aVal);
+                int bValI = *SkTCast<int*>(&bVal);
                 if (0 == aVal && 0 == bVal && aValI != bValI) {
                     foundZeroSignDiff = true;
                 } else {
@@ -58,8 +58,8 @@
             for (int i = 0; i < 9; ++i) {
                 float aVal = a.get(i);
                 float bVal = b.get(i);
-                int aValI = *reinterpret_cast<int*>(&aVal);
-                int bValI = *reinterpret_cast<int*>(&bVal);
+                int aValI = *SkTCast<int*>(&aVal);
+                int bValI = *SkTCast<int*>(&bVal);
                 if (sk_float_isnan(aVal) && aValI == bValI) {
                     foundNaN = true;
                 } else {
diff --git a/tests/RTreeTest.cpp b/tests/RTreeTest.cpp
index 0e06337..6962c89 100644
--- a/tests/RTreeTest.cpp
+++ b/tests/RTreeTest.cpp
@@ -14,7 +14,7 @@
 static const size_t MIN_CHILDREN = 6;
 static const size_t MAX_CHILDREN = 11;
 
-static const size_t NUM_RECTS = 200;
+static const int NUM_RECTS = 200;
 static const size_t NUM_ITERATIONS = 100;
 static const size_t NUM_QUERIES = 50;
 
@@ -46,7 +46,7 @@
                          SkTDArray<void*>& found) {
     SkTDArray<void*> expected;
     // manually intersect with every rectangle
-    for (size_t i = 0; i < NUM_RECTS; ++i) {
+    for (int i = 0; i < NUM_RECTS; ++i) {
         if (SkIRect::IntersectsNoEmptyCheck(query, rects[i].rect)) {
             expected.push(rects[i].data);
         }
@@ -106,7 +106,7 @@
         random_data_rects(rand, rects, NUM_RECTS);
 
         // First try bulk-loaded inserts
-        for (size_t i = 0; i < NUM_RECTS; ++i) {
+        for (int i = 0; i < NUM_RECTS; ++i) {
             rtree->insert(rects[i].data, rects[i].rect, true);
         }
         rtree->flushDeferredInserts();
@@ -118,7 +118,7 @@
         REPORTER_ASSERT(reporter, 0 == rtree->getCount());
 
         // Then try immediate inserts
-        for (size_t i = 0; i < NUM_RECTS; ++i) {
+        for (int i = 0; i < NUM_RECTS; ++i) {
             rtree->insert(rects[i].data, rects[i].rect);
         }
         runQueries(reporter, rand, rects, *rtree);