diff -rup firefox-80.0.1.orig/gfx/skia/skia/include/codec/SkEncodedOrigin.h firefox-80.0.1/gfx/skia/skia/include/codec/SkEncodedOrigin.h
--- firefox-80.0.1.orig/gfx/skia/skia/include/codec/SkEncodedOrigin.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/include/codec/SkEncodedOrigin.h	2020-09-05 17:20:04.093066839 +0200
@@ -41,6 +41,7 @@ static inline SkMatrix SkEncodedOriginTo
         case  kLeftBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0,  1, 0, -1,  0, w, 0, 0, 1);
     }
     SK_ABORT("Unexpected origin");
+    SkUNREACHABLE;
 }
 
 
diff -rup firefox-80.0.1.orig/gfx/skia/skia/include/private/GrTypesPriv.h firefox-80.0.1/gfx/skia/skia/include/private/GrTypesPriv.h
--- firefox-80.0.1.orig/gfx/skia/skia/include/private/GrTypesPriv.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/include/private/GrTypesPriv.h	2020-09-05 16:27:55.719487864 +0200
@@ -540,6 +540,7 @@ static inline GrSLType GrSLCombinedSampl
         default:
             SK_ABORT("Unexpected texture type");
     }
+    SkUNREACHABLE;
 }
 
 /** Rectangle and external textures only support the clamp wrap mode and do not support
@@ -556,6 +557,7 @@ static inline bool GrTextureTypeHasRestr
         default:
             SK_ABORT("Unexpected texture type");
     }
+    SkUNREACHABLE;
 }
 
 static constexpr bool GrSLTypeIsCombinedSamplerType(GrSLType type) {
@@ -858,6 +860,7 @@ static inline size_t GrCompressedFormatD
     }
 
     SK_ABORT("Invalid pixel config");
+    SkUNREACHABLE;
 }
 
 /**
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/core/SkGeometry.h firefox-80.0.1/gfx/skia/skia/src/core/SkGeometry.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/core/SkGeometry.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/core/SkGeometry.h	2020-09-05 17:33:51.896635366 +0200
@@ -182,6 +182,7 @@ static inline bool SkCubicIsDegenerate(S
             return true;
     }
     SK_ABORT("Invalid SkCubicType");
+    SkUNREACHABLE;
 }
 
 static inline const char* SkCubicTypeName(SkCubicType type) {
@@ -194,6 +195,7 @@ static inline const char* SkCubicTypeNam
         case SkCubicType::kLineOrPoint: return "kLineOrPoint";
     }
     SK_ABORT("Invalid SkCubicType");
+    SkUNREACHABLE;
 }
 
 /** Returns the cubic classification.
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTextBlob.cpp firefox-80.0.1/gfx/skia/skia/src/core/SkTextBlob.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTextBlob.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/core/SkTextBlob.cpp	2020-09-05 17:33:19.028493560 +0200
@@ -201,6 +201,7 @@ void SkTextBlob::operator delete(void* p
 
 void* SkTextBlob::operator new(size_t) {
     SK_ABORT("All blobs are created by placement new.");
+    SkUNREACHABLE;
 }
 
 void* SkTextBlob::operator new(size_t, void* p) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTypeface_remote.cpp firefox-80.0.1/gfx/skia/skia/src/core/SkTypeface_remote.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTypeface_remote.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/core/SkTypeface_remote.cpp	2020-09-05 17:33:09.424452127 +0200
@@ -29,6 +29,7 @@ void SkScalerContextProxy::initCache(SkS
 
 unsigned SkScalerContextProxy::generateGlyphCount()  {
     SK_ABORT("Should never be called.");
+    SkUNREACHABLE;
 }
 
 bool SkScalerContextProxy::generateAdvance(SkGlyph* glyph) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTypeface_remote.h firefox-80.0.1/gfx/skia/skia/src/core/SkTypeface_remote.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTypeface_remote.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/core/SkTypeface_remote.h	2020-09-05 17:34:55.424909478 +0200
@@ -63,23 +63,28 @@ public:
     bool isLogging() const {return fIsLogging;}
 
 protected:
-    int onGetUPEM() const override { SK_ABORT("Should never be called."); }
+    int onGetUPEM() const override { SK_ABORT("Should never be called."); SkUNREACHABLE; }
     std::unique_ptr<SkStreamAsset> onOpenStream(int* ttcIndex) const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
     std::unique_ptr<SkFontData> onMakeFontData() const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
     sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
     int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[],
                                      int coordinateCount) const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
     int onGetVariationDesignParameters(SkFontParameters::Variation::Axis parameters[],
                                        int parameterCount) const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
     void onGetFamilyName(SkString* familyName) const override {
         // Used by SkStrikeCache::DumpMemoryStatistics.
@@ -87,12 +92,15 @@ protected:
     }
     SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
     int onGetTableTags(SkFontTableTag tags[]) const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
     size_t onGetTableData(SkFontTableTag, size_t offset, size_t length, void* data) const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
     SkScalerContext* onCreateScalerContext(const SkScalerContextEffects& effects,
                                            const SkDescriptor* desc) const override {
@@ -116,6 +124,7 @@ protected:
 
     std::unique_ptr<SkAdvancedTypefaceMetrics> onGetAdvancedMetrics() const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
     void onCharsToGlyphs(const SkUnichar* chars, int count, SkGlyphID glyphs[]) const override {
         SK_ABORT("Should never be called.");
@@ -126,6 +135,7 @@ protected:
 
     void* onGetCTFontRef() const override {
         SK_ABORT("Should never be called.");
+	SkUNREACHABLE;
     }
 
 private:
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp firefox-80.0.1/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp	2020-09-05 17:35:26.657044250 +0200
@@ -144,6 +144,7 @@ static GrTextureDomain::Mode to_texture_
             return GrTextureDomain::kRepeat_Mode;
         default:
             SK_ABORT("Unsupported tile mode.");
+	    SkUNREACHABLE;
     }
 }
 #endif
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp firefox-80.0.1/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp	2020-09-05 17:35:30.841062305 +0200
@@ -1701,6 +1701,7 @@ static SkImageFilterLight* create_random
         }
         default:
             SK_ABORT("Unexpected value.");
+	    SkUNREACHABLE;
     }
 }
 
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp firefox-80.0.1/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp	2020-09-05 17:35:41.193106978 +0200
@@ -69,6 +69,7 @@ void SkFontMgr_Indirect::onGetFamilyName
 
 SkFontStyleSet* SkFontMgr_Indirect::onCreateStyleSet(int index) const {
     SK_ABORT("Not implemented");
+    SkUNREACHABLE;
 }
 
 SkFontStyleSet* SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrDataUtils.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrDataUtils.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrDataUtils.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrDataUtils.cpp	2020-09-05 17:26:21.958694975 +0200
@@ -128,6 +128,7 @@ size_t GrCompressedDataSize(SkImage::Com
             return numBlocks * sizeof(ETC1Block);
     }
     SK_ABORT("Unexpected compression type");
+    SkUNREACHABLE;
 }
 
 size_t GrCompressedRowBytes(SkImage::CompressionType type, int width) {
@@ -137,6 +138,7 @@ size_t GrCompressedRowBytes(SkImage::Com
             return numBlocksWidth * sizeof(ETC1Block);
     }
     SK_ABORT("Unexpected compression type");
+    SkUNREACHABLE;
 }
 
 // Fill in 'dest' with ETC1 blocks derived from 'colorf'
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrFragmentProcessor.h firefox-80.0.1/gfx/skia/skia/src/gpu/GrFragmentProcessor.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrFragmentProcessor.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrFragmentProcessor.h	2020-09-05 17:26:07.414632282 +0200
@@ -375,6 +375,7 @@ protected:
 private:
     virtual SkPMColor4f constantOutputForConstantInput(const SkPMColor4f& /* inputColor */) const {
         SK_ABORT("Subclass must override this if advertising this optimization.");
+	SkUNREACHABLE;
     }
 
     /** Returns a new instance of the appropriate *GL* implementation class
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrPathRendering.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrPathRendering.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrPathRendering.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrPathRendering.cpp	2020-09-05 17:28:44.215308274 +0200
@@ -19,6 +19,7 @@ const GrUserStencilSettings& GrPathRende
     switch (fill) {
         default:
             SK_ABORT("Unexpected path fill.");
+	    SkUNREACHABLE;
         case GrPathRendering::kWinding_FillType: {
             constexpr static GrUserStencilSettings kWindingStencilPass(
                 GrUserStencilSettings::StaticInit<
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrPathRendering.h firefox-80.0.1/gfx/skia/skia/src/gpu/GrPathRendering.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrPathRendering.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrPathRendering.h	2020-09-05 17:28:31.247252358 +0200
@@ -63,6 +63,7 @@ public:
 
             default:
                 SK_ABORT("Unknown path transform type");
+		SkUNREACHABLE;
         }
     }
 
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp	2020-09-05 17:21:37.549469393 +0200
@@ -20,6 +20,7 @@ std::unique_ptr<GrFragmentProcessor> GrP
     return fp;
 #else
     SK_ABORT("Should not be called if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS");
+    SkUNREACHABLE;
 #endif
 }
 #endif
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrReducedClip.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrReducedClip.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrReducedClip.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrReducedClip.cpp	2020-09-05 17:28:39.151286438 +0200
@@ -525,6 +525,7 @@ GrReducedClip::ClipResult GrReducedClip:
     }
 
     SK_ABORT("Unexpected DeviceSpaceType");
+    SkUNREACHABLE;
 }
 
 GrReducedClip::ClipResult GrReducedClip::clipOutsideElement(const Element* element) {
@@ -591,6 +592,7 @@ GrReducedClip::ClipResult GrReducedClip:
     }
 
     SK_ABORT("Unexpected DeviceSpaceType");
+    SkUNREACHABLE;
 }
 
 inline void GrReducedClip::addWindowRectangle(const SkRect& elementInteriorRect, bool elementIsAA) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrResourceCache.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrResourceCache.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrResourceCache.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrResourceCache.cpp	2020-09-05 17:24:04.038100548 +0200
@@ -40,6 +40,7 @@ GrScratchKey::ResourceType GrScratchKey:
     int32_t type = nextType++;
     if (type > SkTo<int32_t>(UINT16_MAX)) {
         SK_ABORT("Too many Resource Types");
+	SkUNREACHABLE;
     }
 
     return static_cast<ResourceType>(type);
@@ -51,6 +52,7 @@ GrUniqueKey::Domain GrUniqueKey::Generat
     int32_t domain = nextDomain++;
     if (domain > SkTo<int32_t>(UINT16_MAX)) {
         SK_ABORT("Too many GrUniqueKey Domains");
+	SkUNREACHABLE;
     }
 
     return static_cast<Domain>(domain);
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrShaderVar.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrShaderVar.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrShaderVar.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrShaderVar.cpp	2020-09-05 17:21:29.397434277 +0200
@@ -18,6 +18,7 @@ static const char* type_modifier_string(
         case GrShaderVar::kUniform_TypeModifier: return "uniform";
     }
     SK_ABORT("Unknown shader variable type modifier.");
+    SkUNREACHABLE;
 }
 
 void GrShaderVar::setIOType(GrIOType ioType) {
@@ -32,6 +33,7 @@ void GrShaderVar::setIOType(GrIOType ioT
             return;
     }
     SK_ABORT("Unknown io type.");
+    SkUNREACHABLE;
 }
 
 void GrShaderVar::appendDecl(const GrShaderCaps* shaderCaps, SkString* out) const {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/SkGpuDevice.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/SkGpuDevice.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/SkGpuDevice.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/SkGpuDevice.cpp	2020-09-05 17:30:38.891802801 +0200
@@ -283,6 +283,7 @@ static inline GrPrimitiveType point_mode
             return GrPrimitiveType::kLineStrip;
     }
     SK_ABORT("Unexpected mode");
+    SkUNREACHABLE;
 }
 
 void SkGpuDevice::drawPoints(SkCanvas::PointMode mode,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/SkGr.h firefox-80.0.1/gfx/skia/skia/src/gpu/SkGr.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/SkGr.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/SkGr.h	2020-09-05 17:30:45.151829800 +0200
@@ -159,6 +159,7 @@ static inline GrPrimitiveType SkVertexMo
             break;
     }
     SK_ABORT("Invalid mode");
+    SkUNREACHABLE;
 }
 
 //////////////////////////////////////////////////////////////////////////////
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h	2020-09-05 17:32:06.476180575 +0200
@@ -240,6 +240,7 @@ inline const char* GrCCCoverageProcessor
         case PrimitiveType::kConics: return "kConics";
     }
     SK_ABORT("Invalid PrimitiveType");
+    SkUNREACHABLE;
 }
 
 inline void GrCCCoverageProcessor::TriPointInstance::set(
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp	2020-09-05 17:32:10.548198140 +0200
@@ -60,6 +60,7 @@ static GrCCStrokeGeometry::Verb join_ver
             return Verb::kRoundJoin;
     }
     SK_ABORT("Invalid SkPaint::Join.");
+    SkUNREACHABLE;
 }
 
 void GrCCStrokeGeometry::beginPath(const SkStrokeRec& stroke, float strokeDevWidth,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h	2020-09-05 17:32:25.116260983 +0200
@@ -175,5 +175,6 @@ inline bool GrCCStrokeGeometry::IsIntern
             return false;
     }
     SK_ABORT("Invalid GrCCStrokeGeometry::Verb.");
+    SkUNREACHABLE;
 }
 #endif
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp	2020-09-05 17:32:16.092222055 +0200
@@ -164,6 +164,7 @@ GrPathRenderer::CanDrawPath GrCoverageCo
     }
 
     SK_ABORT("Invalid stroke style.");
+    SkUNREACHABLE;
 }
 
 bool GrCoverageCountingPathRenderer::onDrawPath(const DrawPathArgs& args) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp	2020-09-05 17:32:20.524241174 +0200
@@ -550,4 +550,5 @@ GrGLSLPrimitiveProcessor* GrVSCoveragePr
             return new Impl(std::move(shader), 4);
     }
     SK_ABORT("Invalid PrimitiveType");
+    SkUNREACHABLE;
 }
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp	2020-09-05 17:29:04.783396962 +0200
@@ -39,7 +39,9 @@ static dawn::LoadOp to_dawn_load_op(GrLo
             return dawn::LoadOp::Clear;
         default:
             SK_ABORT("Invalid LoadOp");
+	    SkUNREACHABLE;
     }
+    SkUNREACHABLE;
 }
 
 GrDawnOpsRenderPass::GrDawnOpsRenderPass(GrDawnGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp	2020-09-05 17:29:19.431460126 +0200
@@ -95,6 +95,7 @@ uint32_t grsltype_to_alignment_mask(GrSL
             break;
     }
     SK_ABORT("Unexpected type");
+    SkUNREACHABLE;
 }
 
 static inline uint32_t grsltype_to_size(GrSLType type) {
@@ -173,6 +174,7 @@ static inline uint32_t grsltype_to_size(
             break;
     }
     SK_ABORT("Unexpected type");
+    SkUNREACHABLE;
 }
 
 uint32_t get_ubo_offset(uint32_t* currentOffset,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp	2020-09-05 17:29:23.527477789 +0200
@@ -76,6 +76,7 @@ static inline int grsltype_to_location_s
              return 0;
     }
     SK_ABORT("Unexpected type");
+    SkUNREACHABLE;
 }
 
 static void finalize_helper(GrDawnVaryingHandler::VarArray& vars) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp	2020-09-05 17:31:23.039993215 +0200
@@ -58,6 +58,7 @@ void main() {
                 return color * input;
         }
         SK_ABORT("Unexpected mode");
+	SkUNREACHABLE;
     }
 }
 
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp	2020-09-05 17:31:42.796078430 +0200
@@ -204,6 +204,7 @@ const GrXPFactory* GrCoverageSetOpXPFact
     }
 #undef _CONSTEXPR_
     SK_ABORT("Unknown region op.");
+    SkUNREACHABLE;
 }
 
 sk_sp<const GrXferProcessor> GrCoverageSetOpXPFactory::makeXferProcessor(
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp	2020-09-05 17:31:32.900035745 +0200
@@ -753,6 +753,7 @@ const GrXPFactory* GrPorterDuffXPFactory
             return &gScreenPDXPF;
         default:
             SK_ABORT("Unexpected blend mode.");
+	    SkUNREACHABLE;
     }
 }
 
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp	2020-09-05 17:31:49.900109073 +0200
@@ -154,6 +154,7 @@ public:
         }
         printf("%s\n", SkSL::String(type.fName).c_str());
         SK_ABORT("unsupported uniform type");
+	SkUNREACHABLE;
     }
 
     void emitCode(EmitArgs& args) override {
@@ -568,6 +569,7 @@ std::unique_ptr<GrFragmentProcessor> GrS
         }
     }
     SK_ABORT("unreachable");
+    SkUNREACHABLE;
 }
 
 #endif
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h firefox-80.0.1/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h	2020-09-05 17:30:53.303864960 +0200
@@ -41,6 +41,7 @@ public:
                 return color * input;
         }
         SK_ABORT("Unexpected mode");
+	SkUNREACHABLE;
     }
     static std::unique_ptr<GrFragmentProcessor> Make(SkPMColor4f color, InputMode mode) {
         return std::unique_ptr<GrFragmentProcessor>(new GrConstColorProcessor(color, mode));
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/geometry/GrShape.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/geometry/GrShape.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/geometry/GrShape.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/geometry/GrShape.cpp	2020-09-05 17:26:35.670754081 +0200
@@ -164,6 +164,7 @@ SkRect GrShape::bounds() const {
             return this->path().getBounds();
     }
     SK_ABORT("Unknown shape type");
+    SkUNREACHABLE;
 }
 
 SkRect GrShape::styledBounds() const {
@@ -254,6 +255,7 @@ int GrShape::unstyledKeySize() const {
         }
     }
     SK_ABORT("Should never get here.");
+    SkUNREACHABLE;
 }
 
 void GrShape::writeUnstyledKey(uint32_t* key) const {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp	2020-09-05 17:23:12.109876788 +0200
@@ -4159,6 +4159,7 @@ GrBackendFormat GrGLCaps::getBackendForm
             return GrBackendFormat::MakeGL(GR_GL_COMPRESSED_ETC1_RGB8, GR_GL_TEXTURE_2D);
     }
     SK_ABORT("Invalid compression type");
+    SkUNREACHABLE;
 }
 
 GrSwizzle GrGLCaps::getTextureSwizzle(const GrBackendFormat& format, GrColorType colorType) const {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp	2020-09-05 17:22:08.885604389 +0200
@@ -68,4 +68,5 @@ bool GrGLGetGLSLGeneration(const GrGLInt
         return true;
     }
     SK_ABORT("Unknown GL Standard");
+    SkUNREACHABLE;
 }
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp	2020-09-05 17:23:04.717844938 +0200
@@ -196,6 +196,7 @@ static int gl_target_to_binding_index(Gr
             return 2;
     }
     SK_ABORT("Unexpected GL texture target.");
+    SkUNREACHABLE;
 }
 
 GrGpuResource::UniqueID GrGLGpu::TextureUnitBindings::boundID(GrGLenum target) const {
@@ -234,6 +235,7 @@ static GrGLenum filter_to_gl_mag_filter(
         case GrSamplerState::Filter::kMipMap:  return GR_GL_LINEAR;
     }
     SK_ABORT("Unknown filter");
+    SkUNREACHABLE;
 }
 
 static GrGLenum filter_to_gl_min_filter(GrSamplerState::Filter filter) {
@@ -243,6 +245,7 @@ static GrGLenum filter_to_gl_min_filter(
         case GrSamplerState::Filter::kMipMap:  return GR_GL_LINEAR_MIPMAP_LINEAR;
     }
     SK_ABORT("Unknown filter");
+    SkUNREACHABLE;
 }
 
 static inline GrGLenum wrap_mode_to_gl_wrap(GrSamplerState::WrapMode wrapMode,
@@ -257,6 +260,7 @@ static inline GrGLenum wrap_mode_to_gl_w
             return GR_GL_CLAMP_TO_BORDER;
     }
     SK_ABORT("Unknown wrap mode");
+    SkUNREACHABLE;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -1107,7 +1111,7 @@ static bool renderbuffer_storage_msaa(co
             break;
         case GrGLCaps::kNone_MSFBOType:
             SK_ABORT("Shouldn't be here if we don't support multisampled renderbuffers.");
-            break;
+	    SkUNREACHABLE;
     }
     return (GR_GL_NO_ERROR == CHECK_ALLOC_ERROR(ctx.interface()));
 }
@@ -2275,9 +2279,10 @@ static GrGLenum gr_primitive_type_to_gl_
             return GR_GL_LINE_STRIP;
         case GrPrimitiveType::kPath:
             SK_ABORT("non-mesh-based GrPrimitiveType");
-            return 0;
+            SkUNREACHABLE;
     }
     SK_ABORT("invalid GrPrimitiveType");
+    SkUNREACHABLE;
 }
 
 void GrGLGpu::sendMeshToGpu(GrPrimitiveType primitiveType, const GrBuffer* vertexBuffer,
@@ -4006,7 +4011,8 @@ int GrGLGpu::TextureToCopyProgramIdx(GrT
         case kTextureExternalSampler_GrSLType:
             return 2;
         default:
-            SK_ABORT("Unexpected samper type");
+            SK_ABORT("Unexpected sampler type");
+	    SkUNREACHABLE;
     }
 }
 
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp	2020-09-05 17:23:22.477921462 +0200
@@ -197,6 +197,7 @@ static GrPathRendering::FillType convert
     switch (fill) {
         default:
             SK_ABORT("Incomplete Switch\n");
+	    SkUNREACHABLE;
         case SkPath::kWinding_FillType:
         case SkPath::kInverseWinding_FillType:
             return GrPathRendering::kWinding_FillType;
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp	2020-09-05 17:22:32.685706927 +0200
@@ -25,6 +25,7 @@ GrTextureType GrGLTexture::TextureTypeFr
             return GrTextureType::kExternal;
     }
     SK_ABORT("Unexpected texture target");
+    SkUNREACHABLE;
 }
 
 static inline GrGLenum target_from_texture_type(GrTextureType type) {
@@ -37,8 +38,10 @@ static inline GrGLenum target_from_textu
             return GR_GL_TEXTURE_EXTERNAL;
         default:
             SK_ABORT("Unexpected texture target");
+	    SkUNREACHABLE;
     }
     SK_ABORT("Unexpected texture type");
+    SkUNREACHABLE;
 }
 
 // Because this class is virtually derived from GrSurface we must explicitly call its constructor.
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp	2020-09-05 17:23:27.989945214 +0200
@@ -80,6 +80,7 @@ static AttribLayout attrib_layout(GrVert
             return {true, 4, GR_GL_UNSIGNED_SHORT};
     }
     SK_ABORT("Unknown vertex attrib type");
+    SkUNREACHABLE;
 };
 
 void GrGLAttribArrayState::set(GrGLGpu* gpu,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp	2020-09-05 17:30:03.215648939 +0200
@@ -98,4 +98,5 @@ const char* GrGLSLTypeString(GrSLType t)
             return "sampler";
     }
     SK_ABORT("Unknown shader var type.");
+    SkUNREACHABLE;
 }
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp	2020-09-05 17:30:16.439705971 +0200
@@ -35,6 +35,7 @@ static bool use_flat_interpolation(GrGLS
             return true;
     }
     SK_ABORT("Invalid interpolation");
+    SkUNREACHABLE;
 }
 
 void GrGLSLVaryingHandler::addVarying(const char* name, GrGLSLVarying* varying,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp	2020-09-05 17:30:09.799677334 +0200
@@ -51,6 +51,7 @@ static const char* input_type_name(GrGLS
         case InputType::kTriangles: return "triangles";
     }
     SK_ABORT("invalid input type");
+    SkUNREACHABLE;
 }
 
 static const char* output_type_name(GrGLSLGeometryBuilder::OutputType out) {
@@ -61,6 +62,7 @@ static const char* output_type_name(GrGL
         case OutputType::kTriangleStrip: return "triangle_strip";
     }
     SK_ABORT("invalid output type");
+    SkUNREACHABLE;
 }
 
 void GrGLSLGeometryBuilder::configure(InputType inputType, OutputType outputType, int maxVertices,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm	2020-09-05 17:27:20.846948832 +0200
@@ -506,6 +506,7 @@ size_t GrMtlCaps::GetFormatIndex(MTLPixe
         }
     }
     SK_ABORT("Invalid MTLPixelFormat");
+    SkUNREACHABLE;
 }
 
 void GrMtlCaps::initFormatTable() {
@@ -1011,6 +1012,7 @@ GrBackendFormat GrMtlCaps::getBackendFor
 #endif
     }
     SK_ABORT("Invalid compression type");
+    SkUNREACHABLE;
 }
 
 GrSwizzle GrMtlCaps::getTextureSwizzle(const GrBackendFormat& format, GrColorType colorType) const {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm	2020-09-05 17:26:49.110812019 +0200
@@ -155,6 +155,7 @@ static inline MTLVertexFormat attribute_
             return MTLVertexFormatUShort4Normalized;
     }
     SK_ABORT("Unknown vertex attribute type");
+    SkUNREACHABLE;
 }
 
 static MTLVertexDescriptor* create_vertex_descriptor(const GrPrimitiveProcessor& primProc) {
@@ -276,6 +277,7 @@ static MTLBlendFactor blend_coeff_to_mtl
     }
 
     SK_ABORT("Unknown blend coefficient");
+    SkUNREACHABLE;
 }
 
 static MTLBlendOperation blend_equation_to_mtl_blend_op(GrBlendEquation equation) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm	2020-09-05 17:26:53.606831401 +0200
@@ -38,6 +38,7 @@ static inline MTLSamplerAddressMode wrap
             }
     }
     SK_ABORT("Unknown wrap mode.");
+    SkUNREACHABLE;
 }
 
 GrMtlSampler* GrMtlSampler::Create(const GrMtlGpu* gpu, const GrSamplerState& samplerState) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm	2020-09-05 17:27:08.118893961 +0200
@@ -90,6 +90,7 @@ static uint32_t grsltype_to_alignment_ma
             break;
     }
     SK_ABORT("Unexpected type");
+    SkUNREACHABLE;
 }
 
 /** Returns the size in bytes taken up in Metal buffers for GrSLTypes. */
@@ -172,6 +173,7 @@ static inline uint32_t grsltype_to_mtl_s
             break;
     }
     SK_ABORT("Unexpected type");
+    SkUNREACHABLE;
 }
 
 // Given the current offset into the ubo, calculate the offset for the uniform we're trying to add
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm	2020-09-05 17:27:01.606865888 +0200
@@ -112,6 +112,7 @@ bool GrPixelConfigToMTLFormat(GrPixelCon
             return true;
     }
     SK_ABORT("Unexpected config");
+    SkUNREACHABLE;
 }
 
 MTLTextureDescriptor* GrGetMTLTextureDescriptor(id<MTLTexture> mtlTexture) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp	2020-09-05 17:27:56.087100762 +0200
@@ -610,6 +610,7 @@ static uint32_t seed_vertices(GrPrimitiv
             return 0;
     }
     SK_ABORT("Incomplete switch\n");
+    SkUNREACHABLE;
 }
 
 static uint32_t primitive_vertices(GrPrimitiveType type) {
@@ -627,6 +628,7 @@ static uint32_t primitive_vertices(GrPri
             return 0;
     }
     SK_ABORT("Incomplete switch\n");
+    SkUNREACHABLE;
 }
 
 static SkPoint random_point(SkRandom* random, SkScalar min, SkScalar max) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp	2020-09-05 17:27:40.111031883 +0200
@@ -823,4 +823,5 @@ static bool can_use_hw_derivatives_with_
         }
     }
     SK_ABORT("Invalid round rect type.");
+    SkUNREACHABLE;
 }
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp	2020-09-05 17:28:03.935134598 +0200
@@ -2283,6 +2283,7 @@ static int rrect_type_to_vert_count(RRec
             return kVertsPerOverstrokeRRect;
     }
     SK_ABORT("Invalid type");
+    SkUNREACHABLE;
 }
 
 static int rrect_type_to_index_count(RRectType type) {
@@ -2295,6 +2296,7 @@ static int rrect_type_to_index_count(RRe
             return kIndicesPerOverstrokeRRect;
     }
     SK_ABORT("Invalid type");
+    SkUNREACHABLE;
 }
 
 static const uint16_t* rrect_type_to_indices(RRectType type) {
@@ -2306,6 +2308,7 @@ static const uint16_t* rrect_type_to_ind
             return gOverstrokeRRectIndices;
     }
     SK_ABORT("Invalid type");
+    SkUNREACHABLE;
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp	2020-09-05 17:27:49.879073997 +0200
@@ -155,6 +155,7 @@ static int rrect_type_to_vert_count(RRec
             return kVertsPerOverstrokeRRect;
     }
     SK_ABORT("Invalid type");
+    SkUNREACHABLE;
 }
 
 static int rrect_type_to_index_count(RRectType type) {
@@ -167,6 +168,7 @@ static int rrect_type_to_index_count(RRe
             return kIndicesPerOverstrokeRRect;
     }
     SK_ABORT("Invalid type");
+    SkUNREACHABLE;
 }
 
 static const uint16_t* rrect_type_to_indices(RRectType type) {
@@ -178,6 +180,7 @@ static const uint16_t* rrect_type_to_ind
             return gRRectIndices;
     }
     SK_ABORT("Invalid type");
+    SkUNREACHABLE;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/text/GrTextBlob.h firefox-80.0.1/gfx/skia/skia/src/gpu/text/GrTextBlob.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/text/GrTextBlob.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/text/GrTextBlob.h	2020-09-05 17:30:30.791767867 +0200
@@ -125,6 +125,7 @@ public:
 
     void* operator new(size_t) {
         SK_ABORT("All blobs are created by placement new.");
+	SkUNREACHABLE;
     }
 
     void* operator new(size_t, void* p) { return p; }
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp	2020-09-05 17:30:25.919746855 +0200
@@ -284,4 +284,5 @@ bool GrTextBlob::VertexRegenerator::rege
         return true;
     }
     SK_ABORT("Should not get here");
+    SkUNREACHABLE;
 }
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp	2020-09-05 17:25:38.166506214 +0200
@@ -108,6 +108,7 @@ static FormatCompatibilityClass format_c
 
         default:
             SK_ABORT("Unsupported VkFormat");
+	    SkUNREACHABLE;
     }
 }
 
@@ -1656,6 +1657,7 @@ GrBackendFormat GrVkCaps::getBackendForm
             return GrBackendFormat::MakeVk(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK);
     }
     SK_ABORT("Invalid compression type");
+    SkUNREACHABLE;
 }
 
 GrSwizzle GrVkCaps::getTextureSwizzle(const GrBackendFormat& format, GrColorType colorType) const {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp	2020-09-05 17:25:19.878427391 +0200
@@ -28,6 +28,7 @@ static BufferUsage get_buffer_usage(GrVk
             return BufferUsage::kCpuOnly;
     }
     SK_ABORT("Invalid GrVkBuffer::Type");
+    SkUNREACHABLE;
 }
 
 bool GrVkMemory::AllocAndBindBufferMemory(const GrVkGpu* gpu,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp	2020-09-05 17:25:48.238549627 +0200
@@ -80,6 +80,7 @@ static inline VkFormat attrib_type_to_vk
             return VK_FORMAT_R16G16B16A16_UNORM;
     }
     SK_ABORT("Unknown vertex attrib type");
+    SkUNREACHABLE;
 }
 
 static void setup_vertex_input_state(const GrPrimitiveProcessor& primProc,
@@ -162,8 +163,10 @@ static VkPrimitiveTopology gr_primitive_
             return VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
         case GrPrimitiveType::kPath:
             SK_ABORT("Unsupported primitive type");
+	    SkUNREACHABLE;
     }
     SK_ABORT("invalid GrPrimitiveType");
+    SkUNREACHABLE;
 }
 
 static void setup_input_assembly_state(GrPrimitiveType primitiveType,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp	2020-09-05 17:25:24.502447321 +0200
@@ -23,6 +23,7 @@ static inline VkSamplerAddressMode wrap_
             return VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER;
     }
     SK_ABORT("Unknown wrap mode.");
+    SkUNREACHABLE;
 }
 
 GrVkSampler* GrVkSampler::Create(GrVkGpu* gpu, const GrSamplerState& samplerState,
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h	2020-09-05 17:25:55.190579592 +0200
@@ -34,6 +34,7 @@ private:
 
     bool onUpdateData(const void* src, size_t srcSizeInBytes) override {
         SK_ABORT("Not implemented for transfer buffers.");
+	SkUNREACHABLE;
     }
 
     GrVkGpu* getVkGpu() const {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp	2020-09-05 17:25:14.854405738 +0200
@@ -89,6 +89,7 @@ static uint32_t grsltype_to_alignment_ma
             break;
     }
     SK_ABORT("Unexpected type");
+    SkUNREACHABLE;
 }
 
 /** Returns the size in bytes taken up in vulkanbuffers for GrSLTypes. */
@@ -172,6 +173,7 @@ static inline uint32_t grsltype_to_vk_si
             break;
     }
     SK_ABORT("Unexpected type");
+    SkUNREACHABLE;
 }
 
 
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp	2020-09-05 17:25:28.502464561 +0200
@@ -74,6 +74,7 @@ static inline int grsltype_to_location_s
              return 1;
     }
     SK_ABORT("Unexpected type");
+    SkUNREACHABLE;
 }
 
 static void finalize_helper(GrVkVaryingHandler::VarArray& vars) {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/pdf/SkPDFTag.cpp firefox-80.0.1/gfx/skia/skia/src/pdf/SkPDFTag.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/pdf/SkPDFTag.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/pdf/SkPDFTag.cpp	2020-09-05 17:35:12.352982524 +0200
@@ -64,6 +64,7 @@ static const char* tag_name_from_type(Sk
         #undef M
     }
     SK_ABORT("bad tag");
+    SkUNREACHABLE;
 }
 
 struct SkPDFTagNode {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp firefox-80.0.1/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp	2020-09-05 17:21:09.173347158 +0200
@@ -173,18 +173,22 @@ public:
 protected:
     int onCountFamilies() const override {
         SK_ABORT("Not implemented.");
+	SkUNREACHABLE;
     }
 
     void onGetFamilyName(int index, SkString* familyName) const override {
         SK_ABORT("Not implemented.");
+	SkUNREACHABLE;
     }
 
     SkFontStyleSet* onCreateStyleSet(int index) const override {
         SK_ABORT("Not implemented.");
+	SkUNREACHABLE;
     }
 
     SkFontStyleSet* onMatchFamily(const char familyName[]) const override {
         SK_ABORT("Not implemented.");
+	SkUNREACHABLE;
     }
 
     SkTypeface* onMatchFamilyStyle(const char requestedFamilyName[],
@@ -215,10 +219,12 @@ protected:
                                             const char* bcp47[], int bcp47Count,
                                             SkUnichar character) const override {
         SK_ABORT("Not implemented.");
+	SkUNREACHABLE;
     }
 
     SkTypeface* onMatchFaceStyle(const SkTypeface*, const SkFontStyle&) const override {
         SK_ABORT("Not implemented.");
+	SkUNREACHABLE;
     }
 
     sk_sp<SkTypeface> onMakeFromData(sk_sp<SkData> data, int ttcIndex) const override {
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/shaders/SkImageShader.cpp firefox-80.0.1/gfx/skia/skia/src/shaders/SkImageShader.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/shaders/SkImageShader.cpp	2020-08-31 16:04:09.000000000 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/shaders/SkImageShader.cpp	2020-09-05 17:21:18.005385203 +0200
@@ -183,6 +183,7 @@ static GrSamplerState::WrapMode tile_mod
             return GrSamplerState::WrapMode::kClampToBorder;
     }
     SK_ABORT("Unknown tile mode.");
+    SkUNREACHABLE;
 }
 
 std::unique_ptr<GrFragmentProcessor> SkImageShader::asFragmentProcessor(
diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/utils/SkShadowUtils.cpp firefox-80.0.1/gfx/skia/skia/src/utils/SkShadowUtils.cpp
--- firefox-80.0.1.orig/gfx/skia/skia/src/utils/SkShadowUtils.cpp	2020-09-05 13:23:03.590763363 +0200
+++ firefox-80.0.1/gfx/skia/skia/src/utils/SkShadowUtils.cpp	2020-09-05 17:32:47.792358805 +0200
@@ -149,6 +149,7 @@ struct SpotVerticesFactory {
                 return false;
         }
         SK_ABORT("Uninitialized occluder type?");
+	SkUNREACHABLE;
     }
 
     sk_sp<SkVertices> makeVertices(const SkPath& path, const SkMatrix& ctm,
