My clang now doesn't complain about !"foo".

BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/22875037

git-svn-id: http://skia.googlecode.com/svn/trunk@10874 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkBitmapFilter.cpp b/src/core/SkBitmapFilter.cpp
index c2f68d4..5128d9b 100644
--- a/src/core/SkBitmapFilter.cpp
+++ b/src/core/SkBitmapFilter.cpp
@@ -92,7 +92,7 @@
     } else if (!strcmp(c_bitmapFilter, "box")) {
         return SkNEW(SkBoxFilter);
     } else {
-        SkASSERT(!!!"Unknown filter type");
+        SkDEBUGFAIL("Unknown filter type");
     }
 
     return NULL;
diff --git a/src/core/SkFontHost.cpp b/src/core/SkFontHost.cpp
index 0a65e6f..ed5a3e5 100644
--- a/src/core/SkFontHost.cpp
+++ b/src/core/SkFontHost.cpp
@@ -74,10 +74,10 @@
 public:
     virtual int count() SK_OVERRIDE { return 0; }
     virtual void getStyle(int, SkFontStyle*, SkString*) SK_OVERRIDE {
-        SkASSERT(!"SkFontStyleSet::getStyle called on empty set");
+        SkDEBUGFAIL("SkFontStyleSet::getStyle called on empty set");
     }
     virtual SkTypeface* createTypeface(int index) SK_OVERRIDE {
-        SkASSERT(!"SkFontStyleSet::createTypeface called on empty set");
+        SkDEBUGFAIL("SkFontStyleSet::createTypeface called on empty set");
         return NULL;
     }
     virtual SkTypeface* matchStyle(const SkFontStyle&) SK_OVERRIDE {
@@ -99,10 +99,10 @@
         return 0;
     }
     virtual void onGetFamilyName(int index, SkString* familyName) SK_OVERRIDE {
-        SkASSERT(!"onGetFamilyName called with bad index");
+        SkDEBUGFAIL("onGetFamilyName called with bad index");
     }
     virtual SkFontStyleSet* onCreateStyleSet(int index) SK_OVERRIDE {
-        SkASSERT(!"onCreateStyleSet called with bad index");
+        SkDEBUGFAIL("onCreateStyleSet called with bad index");
         return NULL;
     }
     virtual SkFontStyleSet* onMatchFamily(const char[]) SK_OVERRIDE {
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index 47fa552..ef872dc 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -514,7 +514,7 @@
                 closedOrMoved = true;
                 break;
             default:
-                SkASSERT(!"unexpected verb");
+                SkDEBUGFAIL("unexpected verb");
                 break;
         }
         *currVerb += 1;
@@ -858,7 +858,7 @@
                 // don't add a close if it's the first verb or a repeat
                 break;
             default:
-                SkASSERT(!"unexpected verb");
+                SkDEBUGFAIL("unexpected verb");
                 break;
         }
     }
@@ -1594,7 +1594,7 @@
                 needClose = true;
                 break;
             default:
-                SkASSERT(!"unexpected verb");
+                SkDEBUGFAIL("unexpected verb");
         }
     }
 }
@@ -1662,7 +1662,7 @@
                     subdivide_quad_to(&tmp, pts);
                     break;
                 case kConic_Verb:
-                    SkASSERT(!"TODO: compute new weight");
+                    SkDEBUGFAIL("TODO: compute new weight");
                     tmp.conicTo(pts[1], pts[2], iter.conicWeight());
                     break;
                 case kCubic_Verb:
@@ -2498,7 +2498,7 @@
             case SkPath::kClose_Verb:
                 break;
             default:
-                SkASSERT(!"unexpected verb");
+                SkDEBUGFAIL("unexpected verb");
                 break;
         }
     }
diff --git a/src/core/SkPathRef.h b/src/core/SkPathRef.h
index cff75b6..b789de8 100644
--- a/src/core/SkPathRef.h
+++ b/src/core/SkPathRef.h
@@ -424,10 +424,10 @@
                 pCnt = 0;
                 break;
             case SkPath::kDone_Verb:
-                SkASSERT(!"growForVerb called for kDone");
+                SkDEBUGFAIL("growForVerb called for kDone");
                 // fall through
             default:
-                SkASSERT(!"default is not reached");
+                SkDEBUGFAIL("default is not reached");
                 pCnt = 0;
         }
         size_t space = sizeof(uint8_t) + pCnt * sizeof (SkPoint);
diff --git a/src/core/SkPictureRecord.cpp b/src/core/SkPictureRecord.cpp
index 0ec9eaf..309b8a8 100644
--- a/src/core/SkPictureRecord.cpp
+++ b/src/core/SkPictureRecord.cpp
@@ -139,7 +139,7 @@
 }
 
 SkDevice* SkPictureRecord::setDevice(SkDevice* device) {
-    SkASSERT(!"eeek, don't try to change the device on a recording canvas");
+    SkDEBUGFAIL("eeek, don't try to change the device on a recording canvas");
     return this->INHERITED::setDevice(device);
 }
 
diff --git a/src/core/SkStrokeRec.cpp b/src/core/SkStrokeRec.cpp
index cdaf241..ce744e5 100644
--- a/src/core/SkStrokeRec.cpp
+++ b/src/core/SkStrokeRec.cpp
@@ -44,7 +44,7 @@
             }
             break;
         default:
-            SkASSERT(!"unknown paint style");
+            SkDEBUGFAIL("unknown paint style");
             // fall back on just fill
             fWidth = kStrokeRec_FillStyleWidth;
             fStrokeAndFill = false;
diff --git a/src/device/xps/SkXPSDevice.cpp b/src/device/xps/SkXPSDevice.cpp
index 442a51f..79bb6ef 100644
--- a/src/device/xps/SkXPSDevice.cpp
+++ b/src/device/xps/SkXPSDevice.cpp
@@ -476,7 +476,7 @@
     case SkShader::kMirror_TileMode:
         return XPS_SPREAD_METHOD_REFLECT;
     default:
-        SkASSERT(!"Unknown tile mode.");
+        SkDEBUGFAIL("Unknown tile mode.");
     }
     return XPS_SPREAD_METHOD_PAD;
 }
@@ -1370,7 +1370,7 @@
                 // the corresponding line/quad/cubic verbs
                 break;
             default:
-                SkASSERT(!"unexpected verb");
+                SkDEBUGFAIL("unexpected verb");
                 break;
         }
     }
@@ -1879,7 +1879,7 @@
             break;
         }
         default:
-            SkASSERT(!"Unknown SkPath::FillType.");
+            SkDEBUGFAIL("Unknown SkPath::FillType.");
     }
     HRVM(shadedGeometry->SetFillRule(xpsFillRule),
          "Could not set fill rule for shaded path.");
@@ -2125,7 +2125,7 @@
                 "Could not set transform matrix.");
             useCanvasForClip = true;
         } else {
-            SkASSERT(!"Attempt to add glyphs in perspective.");
+            SkDEBUGFAIL("Attempt to add glyphs in perspective.");
             useCanvasForClip = false;
         }
     }
diff --git a/src/doc/SkDocument.cpp b/src/doc/SkDocument.cpp
index e94c89b..055c749 100644
--- a/src/doc/SkDocument.cpp
+++ b/src/doc/SkDocument.cpp
@@ -49,7 +49,7 @@
                 return NULL;
         }
     }
-    SkASSERT(!"never get here");
+    SkDEBUGFAIL("never get here");
     return NULL;
 }
 
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp
index dad0623..6a3abb5 100644
--- a/src/effects/SkDisplacementMapEffect.cpp
+++ b/src/effects/SkDisplacementMapEffect.cpp
@@ -21,7 +21,7 @@
 
 template<SkDisplacementMapEffect::ChannelSelectorType type>
 uint32_t getValue(SkColor, const SkUnPreMultiply::Scale*) {
-    SkASSERT(!"Unknown channel selector");
+    SkDEBUGFAIL("Unknown channel selector");
     return 0;
 }
 
@@ -97,7 +97,7 @@
         break;
       case SkDisplacementMapEffect::kUnknown_ChannelSelectorType:
       default:
-        SkASSERT(!"Unknown Y channel selector");
+        SkDEBUGFAIL("Unknown Y channel selector");
     }
 }
 
@@ -124,7 +124,7 @@
         break;
       case SkDisplacementMapEffect::kUnknown_ChannelSelectorType:
       default:
-        SkASSERT(!"Unknown X channel selector");
+        SkDEBUGFAIL("Unknown X channel selector");
     }
 }
 
@@ -456,7 +456,7 @@
         break;
       case SkDisplacementMapEffect::kUnknown_ChannelSelectorType:
       default:
-        SkASSERT(!"Unknown X channel selector");
+        SkDEBUGFAIL("Unknown X channel selector");
     }
 
     switch (fYChannelSelector) {
@@ -474,7 +474,7 @@
         break;
       case SkDisplacementMapEffect::kUnknown_ChannelSelectorType:
       default:
-        SkASSERT(!"Unknown Y channel selector");
+        SkDEBUGFAIL("Unknown Y channel selector");
     }
     builder->fsCodeAppend("-vec2(0.5));\t\t");
 
diff --git a/src/gpu/GrAtlas.cpp b/src/gpu/GrAtlas.cpp
index 9184929..9776326 100644
--- a/src/gpu/GrAtlas.cpp
+++ b/src/gpu/GrAtlas.cpp
@@ -189,7 +189,7 @@
         case kA888_GrMaskFormat:
             return kSkia8888_GrPixelConfig;
         default:
-            SkASSERT(!"unknown maskformat");
+            SkDEBUGFAIL("unknown maskformat");
     }
     return kUnknown_GrPixelConfig;
 }
diff --git a/src/gpu/GrDefaultPathRenderer.cpp b/src/gpu/GrDefaultPathRenderer.cpp
index 1f33e95..bd52ce1 100644
--- a/src/gpu/GrDefaultPathRenderer.cpp
+++ b/src/gpu/GrDefaultPathRenderer.cpp
@@ -441,7 +441,7 @@
                     }
                     break;
                 default:
-                    SkASSERT(!"Unknown path fFill!");
+                    SkDEBUGFAIL("Unknown path fFill!");
                     return false;
             }
         }
diff --git a/src/gpu/SkGrFontScaler.cpp b/src/gpu/SkGrFontScaler.cpp
index aeddd28..c48e633 100644
--- a/src/gpu/SkGrFontScaler.cpp
+++ b/src/gpu/SkGrFontScaler.cpp
@@ -88,7 +88,7 @@
         case SkMask::kLCD32_Format:
             return kA888_GrMaskFormat;
         default:
-            SkASSERT(!"unsupported SkMask::Format");
+            SkDEBUGFAIL("unsupported SkMask::Format");
             return kA8_GrMaskFormat;
     }
 }
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index f1bb1f3..83ab232 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -364,7 +364,7 @@
             print_shader(stringCnt, strings, stringLengths);
             GrPrintf("\n%s", log.get());
         }
-        SkASSERT(!"Shader compilation failed!");
+        SkDEBUGFAIL("Shader compilation failed!");
         GR_GL_CALL(gli, DeleteShader(shader));
         return 0;
     }
@@ -742,7 +742,7 @@
                                       (char*)log.get()));
             GrPrintf((char*)log.get());
         }
-        SkASSERT(!"Error linking program");
+        SkDEBUGFAIL("Error linking program");
         GL_CALL(DeleteProgram(fProgramID));
         fProgramID = 0;
         return false;
diff --git a/src/gpu/gl/GrGLUtil.cpp b/src/gpu/gl/GrGLUtil.cpp
index 99efeaf..422f0c3 100644
--- a/src/gpu/gl/GrGLUtil.cpp
+++ b/src/gpu/gl/GrGLUtil.cpp
@@ -93,7 +93,7 @@
 
 GrGLBinding GrGLGetBindingInUseFromString(const char* versionString) {
     if (NULL == versionString) {
-        SkASSERT(!"NULL GL version string.");
+        SkDEBUGFAIL("NULL GL version string.");
         return kNone_GrGLBinding;
     }
 
@@ -129,7 +129,7 @@
 
 GrGLVersion GrGLGetVersionFromString(const char* versionString) {
     if (NULL == versionString) {
-        SkASSERT(!"NULL GL version string.");
+        SkDEBUGFAIL("NULL GL version string.");
         return 0;
     }
 
@@ -168,7 +168,7 @@
 
 GrGLSLVersion GrGLGetGLSLVersionFromString(const char* versionString) {
     if (NULL == versionString) {
-        SkASSERT(!"NULL GLSL version string.");
+        SkDEBUGFAIL("NULL GLSL version string.");
         return 0;
     }
 
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
index 685d4e8..7a1f4be 100644
--- a/src/gpu/gl/GrGpuGL.cpp
+++ b/src/gpu/gl/GrGpuGL.cpp
@@ -891,7 +891,7 @@
 
 // good to set a break-point here to know when createTexture fails
 static GrTexture* return_null_texture() {
-//    SkASSERT(!"null texture");
+//    SkDEBUGFAIL("null texture");
     return NULL;
 }
 
diff --git a/src/gpu/gl/GrGpuGL_program.cpp b/src/gpu/gl/GrGpuGL_program.cpp
index 7ead7b7..5548320 100644
--- a/src/gpu/gl/GrGpuGL_program.cpp
+++ b/src/gpu/gl/GrGpuGL_program.cpp
@@ -291,7 +291,7 @@
                                                         colorStages.begin(),
                                                         coverageStages.begin()));
         if (NULL == fCurrentProgram.get()) {
-            SkASSERT(!"Failed to create program!");
+            SkDEBUGFAIL("Failed to create program!");
             return false;
         }
         fCurrentProgram.get()->ref();
diff --git a/src/image/SkImagePriv.cpp b/src/image/SkImagePriv.cpp
index ca4a12c..9454272 100644
--- a/src/image/SkImagePriv.cpp
+++ b/src/image/SkImagePriv.cpp
@@ -54,7 +54,7 @@
             }
             break;
     }
-    SkASSERT(!"how did we get here");
+    SkDEBUGFAIL("how did we get here");
     return SkBitmap::kNo_Config;
 }
 
diff --git a/src/images/SkImageDecoder.cpp b/src/images/SkImageDecoder.cpp
index a671607..7c4c477 100644
--- a/src/images/SkImageDecoder.cpp
+++ b/src/images/SkImageDecoder.cpp
@@ -94,7 +94,7 @@
         case kWEBP_Format:
             return "WEBP";
         default:
-            SkASSERT(!"Invalid format type!");
+            SkDEBUGFAIL("Invalid format type!");
     }
     return "Unknown Format";
 }
@@ -433,7 +433,7 @@
 
     if (target->fRowBytes != SkToU32(bm.rowBytes())) {
         if (target->fRowBytes < SkImageMinRowBytes(*info)) {
-            SkASSERT(!"Desired row bytes is too small");
+            SkDEBUGFAIL("Desired row bytes is too small");
             return false;
         }
         bm.setConfig(bm.config(), bm.width(), bm.height(), target->fRowBytes);
diff --git a/src/pathops/SkPathOpsTypes.h b/src/pathops/SkPathOpsTypes.h
index 6158f13..19e3efa 100644
--- a/src/pathops/SkPathOpsTypes.h
+++ b/src/pathops/SkPathOpsTypes.h
@@ -227,7 +227,7 @@
         case 1: SkASSERT(SkPath::kLine_Verb == verb); break;
         case 2: SkASSERT(SkPath::kQuad_Verb == verb); break;
         case 3: SkASSERT(SkPath::kCubic_Verb == verb); break;
-        default: SkASSERT(!"should not be here");
+        default: SkDEBUGFAIL("should not be here");
     }
 #endif
     return (SkPath::Verb)verb;
@@ -240,7 +240,7 @@
         case SkPath::kLine_Verb: SkASSERT(1 == points); break;
         case SkPath::kQuad_Verb: SkASSERT(2 == points); break;
         case SkPath::kCubic_Verb: SkASSERT(3 == points); break;
-        default: SkASSERT(!"should not get here");
+        default: SkDEBUGFAIL("should not get here");
     }
 #endif
     return points;
diff --git a/src/pdf/SkPDFUtils.h b/src/pdf/SkPDFUtils.h
index 4f54db6..b30821d 100644
--- a/src/pdf/SkPDFUtils.h
+++ b/src/pdf/SkPDFUtils.h
@@ -27,7 +27,7 @@
 
 #define NOT_IMPLEMENTED(condition, assert)                         \
     do {                                                           \
-        if (condition) {                                           \
+        if ((bool)(condition)) {                                   \
             PRINT_NOT_IMPL("NOT_IMPLEMENTED: " #condition "\n");   \
             SkDEBUGCODE(SkASSERT(!assert);)                        \
         }                                                          \
diff --git a/src/utils/SkJSON.cpp b/src/utils/SkJSON.cpp
index 9b12208..1aedf58 100644
--- a/src/utils/SkJSON.cpp
+++ b/src/utils/SkJSON.cpp
@@ -414,7 +414,7 @@
                 SkDebugf("%s", slot->fValue.fBool ? "true" : "false");
                 break;
             default:
-                SkASSERT(!"how did I get here");
+                SkDEBUGFAIL("how did I get here");
                 break;
         }
         if (slot->fNext) {
@@ -490,7 +490,7 @@
             SkDebugf(" %s ", fArray.fInts[last] ? "true" : "false");
         } break;
         default:
-            SkASSERT(!"unsupported array type");
+            SkDEBUGFAIL("unsupported array type");
             break;
     }
 }
diff --git a/src/utils/SkLua.cpp b/src/utils/SkLua.cpp
index 427093b..767e177 100644
--- a/src/utils/SkLua.cpp
+++ b/src/utils/SkLua.cpp
@@ -906,7 +906,7 @@
         case SkRRect::kSimple_Type: return "simple";
         case SkRRect::kComplex_Type: return "complex";
     }
-    SkASSERT(!"never get here");
+    SkDEBUGFAIL("never get here");
     return "";
 }
 
diff --git a/src/utils/SkPictureUtils.cpp b/src/utils/SkPictureUtils.cpp
index 87a4057..45d3f1b 100644
--- a/src/utils/SkPictureUtils.cpp
+++ b/src/utils/SkPictureUtils.cpp
@@ -37,7 +37,7 @@
 };
 
 static void not_supported() {
-    SkASSERT(!"this method should never be called");
+    SkDEBUGFAIL("this method should never be called");
 }
 
 static void nothing_to_do() {}
diff --git a/src/utils/ios/SkFontHost_iOS.mm b/src/utils/ios/SkFontHost_iOS.mm
index 60f111c..ae75165 100755
--- a/src/utils/ios/SkFontHost_iOS.mm
+++ b/src/utils/ios/SkFontHost_iOS.mm
@@ -172,12 +172,12 @@
 }
 
 SkTypeface* SkFontHost::CreateTypefaceFromStream(SkStream* stream) {
-    SkASSERT(!"SkFontHost::CreateTypeface unimplemented");
+    SkDEBUGFAIL("SkFontHost::CreateTypeface unimplemented");
     return NULL;
 }
 
 SkTypeface* SkFontHost::CreateTypefaceFromFile(char const*) {
-//    SkASSERT(!"SkFontHost::CreateTypefaceFromFile unimplemented");
+//    SkDEBUGFAIL("SkFontHost::CreateTypefaceFromFile unimplemented");
     return NULL;
 }
 
@@ -198,7 +198,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 void SkFontHost::Serialize(const SkTypeface* face, SkWStream* stream) {
-    SkASSERT(!"SkFontHost::Serialize unimplemented");
+    SkDEBUGFAIL("SkFontHost::Serialize unimplemented");
 }
 
 SkTypeface* SkFontHost::Deserialize(SkStream* stream) {
@@ -249,7 +249,7 @@
 SkAdvancedTypefaceMetrics* SkFontHost::GetAdvancedTypefaceMetrics(
                                                                   uint32_t fontID,
                                                                   SkAdvancedTypefaceMetrics::PerGlyphInfo perGlyphInfo) {
-    SkASSERT(!"SkFontHost::GetAdvancedTypefaceMetrics unimplemented");
+    SkDEBUGFAIL("SkFontHost::GetAdvancedTypefaceMetrics unimplemented");
     return NULL;
 }
 
@@ -257,6 +257,6 @@
 }
 
 SkScalerContext* SkFontHost::CreateScalerContext(const SkDescriptor* desc) {
-    SkASSERT(!"SkFontHost::CreateScalarContext unimplemented");
+    SkDEBUGFAIL("SkFontHost::CreateScalarContext unimplemented");
     return NULL;
 }
\ No newline at end of file
diff --git a/src/utils/ios/SkOSFile_iOS.mm b/src/utils/ios/SkOSFile_iOS.mm
index a685761..e38ecfd 100755
--- a/src/utils/ios/SkOSFile_iOS.mm
+++ b/src/utils/ios/SkOSFile_iOS.mm
@@ -82,12 +82,12 @@
 }
 
 size_t sk_fwrite(const void* buffer, size_t byteCount, SkFILE* f) {
-    SkASSERT(!"Not supported yet");
+    SkDEBUGFAIL("Not supported yet");
     return 0;
 }
 
 void sk_fflush(SkFILE* f) {
-    SkASSERT(!"Not supported yet");
+    SkDEBUGFAIL("Not supported yet");
 }
 
 void sk_fclose(SkFILE* rec) {
diff --git a/src/utils/win/SkDWriteGeometrySink.cpp b/src/utils/win/SkDWriteGeometrySink.cpp
index 5455e66..a12b514 100644
--- a/src/utils/win/SkDWriteGeometrySink.cpp
+++ b/src/utils/win/SkDWriteGeometrySink.cpp
@@ -53,21 +53,21 @@
         fPath->setFillType(SkPath::kWinding_FillType);
         break;
     default:
-        SkASSERT(!"Unknown D2D1_FILL_MODE.");
+        SkDEBUGFAIL("Unknown D2D1_FILL_MODE.");
         break;
     }
 }
 
 void STDMETHODCALLTYPE SkDWriteGeometrySink::SetSegmentFlags(D2D1_PATH_SEGMENT vertexFlags) {
     if (vertexFlags == D2D1_PATH_SEGMENT_NONE || vertexFlags == D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN) {
-        SkASSERT(!"Invalid D2D1_PATH_SEGMENT value.");
+        SkDEBUGFAIL("Invalid D2D1_PATH_SEGMENT value.");
     }
 }
 
 void STDMETHODCALLTYPE SkDWriteGeometrySink::BeginFigure(D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin) {
     fPath->moveTo(SkFloatToScalar(startPoint.x), SkFloatToScalar(startPoint.y));
     if (figureBegin == D2D1_FIGURE_BEGIN_HOLLOW) {
-        SkASSERT(!"Invalid D2D1_FIGURE_BEGIN value.");
+        SkDEBUGFAIL("Invalid D2D1_FIGURE_BEGIN value.");
     }
 }