Fix compiler warning using mixed enum types

Started getting:

   error: bitwise operation between different enumeration types ('GrStencilSettings::(anonymous enum at ../../src/gpu/GrStencilSettings.h:134:5)' and 'GrStencilFlags') [-Werror,-Wanon-enum-enum-conversion]
       if ((kInvalid_PrivateFlag | kDisabled_StencilFlag) & (fFlags | that.fFlags)) {

after updating clang, which this CL fixes.

Change-Id: Ib2668e98298248ce5712d4ee9f125c78bf3445b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/269140
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
diff --git a/src/gpu/GrStencilSettings.h b/src/gpu/GrStencilSettings.h
index fc1e66a..f07d0ae 100644
--- a/src/gpu/GrStencilSettings.h
+++ b/src/gpu/GrStencilSettings.h
@@ -131,7 +131,11 @@
 
 private:
     // Internal flag for backends to optionally mark their tracked stencil state as invalid.
-    enum { kInvalid_PrivateFlag = (kLast_StencilFlag << 1) };
+    // NOTE: This value is outside the declared range of GrStencilFlags, but since that type is
+    // explicitly backed by 'int', it can still represent this constant. clang 11 complains about
+    // mixing enum types in bit operations, so this works around that.
+    static constexpr GrStencilFlags kInvalid_PrivateFlag =
+            static_cast<GrStencilFlags>(kLast_StencilFlag << 1);
 
     uint32_t   fFlags;
     Face       fCWFace;
diff --git a/src/gpu/GrUserStencilSettings.h b/src/gpu/GrUserStencilSettings.h
index d492120..a6dc6b2 100644
--- a/src/gpu/GrUserStencilSettings.h
+++ b/src/gpu/GrUserStencilSettings.h
@@ -32,7 +32,7 @@
  *   clip).
  */
 
-enum GrStencilFlags {
+enum GrStencilFlags : int {
     kDisabled_StencilFlag         = (1 << 0),
     kTestAlwaysPasses_StencilFlag = (1 << 1),
     kNoModifyStencil_StencilFlag  = (1 << 2),