require semi at the end of SkASSERT and friends

R=bungeman@google.com
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2185063002

Review-Url: https://codereview.chromium.org/2185063002
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index deb2819..69c53c3 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -139,14 +139,19 @@
     SK_API void SkDebugf(const char format[], ...);
 #endif
 
-#define SkASSERT_RELEASE(cond)          if (!(cond)) { SK_ABORT(#cond); }
+#define SkREQUIRE_SEMICOLON_AFTER(code) do { code } while (false)
+
+#define SkASSERT_RELEASE(cond) \
+    SkREQUIRE_SEMICOLON_AFTER(if (!(cond)) { SK_ABORT(#cond); } )
 
 #ifdef SK_DEBUG
-    #define SkASSERT(cond)              if (!(cond)) { SK_ABORT("assert(" #cond ")"); }
-    #define SkASSERTF(cond, fmt, ...)   if (!(cond)) { \
-                                            SkDebugf(fmt"\n", __VA_ARGS__); \
-                                            SK_ABORT("assert(" #cond ")"); \
-                                        }
+    #define SkASSERT(cond) \
+        SkREQUIRE_SEMICOLON_AFTER(if (!(cond)) { SK_ABORT("assert(" #cond ")"); })
+    #define SkASSERTF(cond, fmt, ...) \
+        SkREQUIRE_SEMICOLON_AFTER(if (!(cond)) { \
+                                      SkDebugf(fmt"\n", __VA_ARGS__); \
+                                      SK_ABORT("assert(" #cond ")"); \
+                                  })
     #define SkDEBUGFAIL(message)        SK_ABORT(message)
     #define SkDEBUGFAILF(fmt, ...)      SkASSERTF(false, fmt, ##__VA_ARGS__)
     #define SkDEBUGCODE(code)           code
diff --git a/include/gpu/GrClip.h b/include/gpu/GrClip.h
index 1cb1a2b..c74d25d 100644
--- a/include/gpu/GrClip.h
+++ b/include/gpu/GrClip.h
@@ -44,7 +44,7 @@
         fHasStencilClip = true;
         if (deviceBounds) {
             fDeviceBounds = *deviceBounds;
-            SkASSERT(scissor.contains(*deviceBounds))
+            SkASSERT(scissor.contains(*deviceBounds));
         } else {
             fDeviceBounds = SkRect::Make(scissor);
         }
@@ -75,7 +75,7 @@
         fHasStencilClip = false;
         if (deviceBounds) {
             fDeviceBounds = *deviceBounds;
-            SkASSERT(scissor.contains(*deviceBounds))
+            SkASSERT(scissor.contains(*deviceBounds));
         } else {
             fDeviceBounds = SkRect::Make(scissor);
         }
diff --git a/src/core/SkLinearBitmapPipeline_sample.h b/src/core/SkLinearBitmapPipeline_sample.h
index 20057cc..78f46ff 100644
--- a/src/core/SkLinearBitmapPipeline_sample.h
+++ b/src/core/SkLinearBitmapPipeline_sample.h
@@ -445,7 +445,7 @@
 // on the interval [0, vMax].
 // Note: vMax is not width or height, but width-1 or height-1 because it is the largest valid pixel.
 static inline int adjust_edge(SkShader::TileMode edgeType, int vs, int vMax) {
-    SkASSERT(-1 <= vs && vs <= vMax + 1)
+    SkASSERT(-1 <= vs && vs <= vMax + 1);
     switch (edgeType) {
         case SkShader::kClamp_TileMode:
         case SkShader::kMirror_TileMode:
diff --git a/src/core/SkNormalSource.cpp b/src/core/SkNormalSource.cpp
index c282a12..38cf0bf 100644
--- a/src/core/SkNormalSource.cpp
+++ b/src/core/SkNormalSource.cpp
@@ -280,7 +280,7 @@
                 output[i].normalize();
             }
 
-            SkASSERT(SkScalarNearlyEqual(output[i].length(), 1.0f))
+            SkASSERT(SkScalarNearlyEqual(output[i].length(), 1.0f));
         }
 
         output += n;
diff --git a/src/gpu/GrPathRenderer.h b/src/gpu/GrPathRenderer.h
index 6547a41..52ecc59 100644
--- a/src/gpu/GrPathRenderer.h
+++ b/src/gpu/GrPathRenderer.h
@@ -196,7 +196,7 @@
             SkASSERT(fDrawContext);
             SkASSERT(fViewMatrix);
             SkASSERT(fShape);
-            SkASSERT(fShape->style().isSimpleFill())
+            SkASSERT(fShape->style().isSimpleFill());
             SkPath path;
             fShape->asPath(&path);
             SkASSERT(!path.isInverseFillType());
diff --git a/src/gpu/GrSoftwarePathRenderer.cpp b/src/gpu/GrSoftwarePathRenderer.cpp
index 2728811..05b3ef8 100644
--- a/src/gpu/GrSoftwarePathRenderer.cpp
+++ b/src/gpu/GrSoftwarePathRenderer.cpp
@@ -130,7 +130,7 @@
     // We really need to know if the shape will be inverse filled or not
     bool inverseFilled = false;
     SkTLazy<GrShape> tmpShape;
-    SkASSERT(!args.fShape->style().applies())
+    SkASSERT(!args.fShape->style().applies());
     inverseFilled = args.fShape->inverseFilled();
 
     SkIRect devShapeBounds, devClipBounds;
diff --git a/src/gpu/GrStyle.cpp b/src/gpu/GrStyle.cpp
index 7ea5193..153cade 100644
--- a/src/gpu/GrStyle.cpp
+++ b/src/gpu/GrStyle.cpp
@@ -104,7 +104,7 @@
 }
 
 void GrStyle::initPathEffect(SkPathEffect* pe) {
-    SkASSERT(!fPathEffect)
+    SkASSERT(!fPathEffect);
     SkASSERT(SkPathEffect::kNone_DashType == fDashInfo.fType);
     SkASSERT(0 == fDashInfo.fIntervals.count());
     if (!pe) {
diff --git a/src/gpu/batches/GrAAStrokeRectBatch.cpp b/src/gpu/batches/GrAAStrokeRectBatch.cpp
index 8c42c9a..bbee3f8 100644
--- a/src/gpu/batches/GrAAStrokeRectBatch.cpp
+++ b/src/gpu/batches/GrAAStrokeRectBatch.cpp
@@ -124,8 +124,8 @@
                       const SkRect& devOutside, const SkRect& devInside)
             : INHERITED(ClassID())
             , fViewMatrix(viewMatrix) {
-        SkASSERT(!devOutside.isEmpty())
-        SkASSERT(!devInside.isEmpty())
+        SkASSERT(!devOutside.isEmpty());
+        SkASSERT(!devInside.isEmpty());
 
         fGeoData.emplace_back(Geometry{color, devOutside, devOutside, devInside, false});
         this->setBounds(devOutside, HasAABloat::kYes, IsZeroArea::kNo);
diff --git a/src/gpu/batches/GrPLSPathRenderer.cpp b/src/gpu/batches/GrPLSPathRenderer.cpp
index ad9bde1..c022e16 100644
--- a/src/gpu/batches/GrPLSPathRenderer.cpp
+++ b/src/gpu/batches/GrPLSPathRenderer.cpp
@@ -942,7 +942,7 @@
 
 SkDEBUGCODE(bool inPLSDraw = false;)
 bool GrPLSPathRenderer::onDrawPath(const DrawPathArgs& args) {
-    SkASSERT(!args.fShape->isEmpty())
+    SkASSERT(!args.fShape->isEmpty());
     SkASSERT(!inPLSDraw);
     SkDEBUGCODE(inPLSDraw = true;)
     SkPath path;
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index d309dc1..ec38804 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -2769,7 +2769,7 @@
 }
 
 void GrGLGpu::stampPLSSetupRect(const SkRect& bounds) {
-    SkASSERT(this->glCaps().glslCaps()->plsPathRenderingSupport())
+    SkASSERT(this->glCaps().glslCaps()->plsPathRenderingSupport());
 
     if (!fPLSSetupProgram.fProgram) {
         if (!this->createPLSSetupProgram()) {
diff --git a/src/gpu/vk/GrVkMemory.cpp b/src/gpu/vk/GrVkMemory.cpp
index 63cb523..19150c6 100644
--- a/src/gpu/vk/GrVkMemory.cpp
+++ b/src/gpu/vk/GrVkMemory.cpp
@@ -297,7 +297,7 @@
                 }
                 iter.next();
             }
-            SkASSERT(largestSize == fLargestBlockSize)
+            SkASSERT(largestSize == fLargestBlockSize);
 #endif
         } else {
             SkASSERT(bestFit->fSize == alignedSize);
diff --git a/src/pathops/SkOpCoincidence.h b/src/pathops/SkOpCoincidence.h
index 9835a21..4b3e472 100644
--- a/src/pathops/SkOpCoincidence.h
+++ b/src/pathops/SkOpCoincidence.h
@@ -72,7 +72,7 @@
         SkDEBUGPARAMS(int id));
 
     void setCoinPtTEnd(const SkOpPtT* ptT) {
-        SkOPASSERT(ptT == ptT->span()->ptT())
+        SkOPASSERT(ptT == ptT->span()->ptT());
         SkASSERT(!fCoinPtTStart || ptT->fT != fCoinPtTStart->fT);
         SkASSERT(!fCoinPtTStart || fCoinPtTStart->segment() == ptT->segment());
         fCoinPtTEnd = ptT;
@@ -80,7 +80,7 @@
     }
 
     void setCoinPtTStart(const SkOpPtT* ptT) {
-        SkASSERT(ptT == ptT->span()->ptT())
+        SkASSERT(ptT == ptT->span()->ptT());
         SkASSERT(!fCoinPtTEnd || ptT->fT != fCoinPtTEnd->fT);
         SkASSERT(!fCoinPtTEnd || fCoinPtTEnd->segment() == ptT->segment());
         fCoinPtTStart = ptT;
@@ -93,7 +93,7 @@
     }
 
     void setOppPtTEnd(const SkOpPtT* ptT) {
-        SkOPASSERT(ptT == ptT->span()->ptT())
+        SkOPASSERT(ptT == ptT->span()->ptT());
         SkASSERT(!fOppPtTStart || ptT->fT != fOppPtTStart->fT);
         SkASSERT(!fOppPtTStart || fOppPtTStart->segment() == ptT->segment());
         fOppPtTEnd = ptT;
@@ -101,7 +101,7 @@
     }
 
     void setOppPtTStart(const SkOpPtT* ptT) {
-        SkASSERT(ptT == ptT->span()->ptT())
+        SkASSERT(ptT == ptT->span()->ptT());
         SkASSERT(!fOppPtTEnd || ptT->fT != fOppPtTEnd->fT);
         SkASSERT(!fOppPtTEnd || fOppPtTEnd->segment() == ptT->segment());
         fOppPtTStart = ptT;
diff --git a/src/pathops/SkPathOpsDebug.cpp b/src/pathops/SkPathOpsDebug.cpp
index 93743f3..b839fee 100644
--- a/src/pathops/SkPathOpsDebug.cpp
+++ b/src/pathops/SkPathOpsDebug.cpp
@@ -822,7 +822,7 @@
                 //   coincidences->add(rootPriorPtT, rootPtT, rootOppStart, rootOppEnd);
                 // }
 #if DEBUG_COINCIDENCE
-//                SkASSERT(coincidences->contains(rootPriorPtT, rootPtT, rootOppStart, rootOppEnd)
+//                SkASSERT(coincidences->contains(rootPriorPtT, rootPtT, rootOppStart, rootOppEnd);
 #endif
                 // result = true;
             }