Reland "Fix more new Clang warnings"

This is a reland of 3d5483a5474521b52896410c6648fe2513d47a4d

Original change's description:
> Fix more new Clang warnings
>
> Change-Id: I82a13744669a6b5c23e23e6a719ec79878114dab
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/418697
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

Change-Id: I6a81630c09d7aed906196b28adced0bf0a88e18d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/418938
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/gn/gn_to_bp_utils.py b/gn/gn_to_bp_utils.py
index 357cce4..6384016 100755
--- a/gn/gn_to_bp_utils.py
+++ b/gn/gn_to_bp_utils.py
@@ -55,6 +55,7 @@
     "-Wno-missing-field-initializers",
     "-Wno-sign-conversion",
     "-Wno-thread-safety-analysis",
+    "-Wno-unknown-warning-option",
     "-Wno-unused-parameter",
     "-Wno-unused-variable",
   ])
diff --git a/modules/skparagraph/src/Run.h b/modules/skparagraph/src/Run.h
index 193de70..2eee6d0 100644
--- a/modules/skparagraph/src/Run.h
+++ b/modules/skparagraph/src/Run.h
@@ -279,6 +279,7 @@
 
     Cluster(TextRange textRange) : fTextRange(textRange), fGraphemeRange(EMPTY_RANGE) { }
 
+    Cluster(const Cluster&) = default;
     ~Cluster() = default;
 
     SkScalar sizeToChar(TextIndex ch) const;
diff --git a/src/core/SkGlyphRunPainter.h b/src/core/SkGlyphRunPainter.h
index e1505f0..bd29860 100644
--- a/src/core/SkGlyphRunPainter.h
+++ b/src/core/SkGlyphRunPainter.h
@@ -67,6 +67,8 @@
 
     class BitmapDevicePainter {
     public:
+        BitmapDevicePainter() = default;
+        BitmapDevicePainter(const BitmapDevicePainter&) = default;
         virtual ~BitmapDevicePainter() = default;
 
         virtual void paintPaths(
diff --git a/src/utils/win/SkDWrite.cpp b/src/utils/win/SkDWrite.cpp
index 26700fa..9847c41 100644
--- a/src/utils/win/SkDWrite.cpp
+++ b/src/utils/win/SkDWrite.cpp
@@ -14,6 +14,11 @@
 
 #include <dwrite.h>
 
+#if defined(__clang__)
+    #pragma clang diagnostic push
+    #pragma clang diagnostic ignored "-Wcast-function-type"
+#endif
+
 static IDWriteFactory* gDWriteFactory = nullptr;
 
 static void release_dwrite_factory() {
@@ -126,4 +131,8 @@
     return S_OK;
 }
 
+#if defined(__clang__)
+    #pragma clang diagnostic pop
+#endif
+
 #endif//defined(SK_BUILD_FOR_WIN)
diff --git a/src/utils/win/SkWGL_win.cpp b/src/utils/win/SkWGL_win.cpp
index 91ad84a..c42277d 100644
--- a/src/utils/win/SkWGL_win.cpp
+++ b/src/utils/win/SkWGL_win.cpp
@@ -276,6 +276,11 @@
             SkASSERT(dummyGLRC);
             wglMakeCurrent(dummyDC, dummyGLRC);
 
+            #if defined(__clang__)
+                #pragma clang diagnostic push
+                #pragma clang diagnostic ignored "-Wcast-function-type"
+            #endif
+
             GET_PROC(GetExtensionsString, ARB);
             GET_PROC(ChoosePixelFormat, ARB);
             GET_PROC(GetPixelFormatAttribiv, ARB);
@@ -287,6 +292,10 @@
             GET_PROC(ReleasePbufferDC, ARB);
             GET_PROC(DestroyPbuffer, ARB);
 
+            #if defined(__clang__)
+                #pragma clang diagnostic pop
+            #endif
+
             wglMakeCurrent(dummyDC, nullptr);
             wglDeleteContext(dummyGLRC);
             destroy_dummy_window(dummyWND);