# HG changeset patch
# Parent  72e5683524907256ec499f82bac513c29760b332

Index: firefox-102.3.0/Cargo.lock
===================================================================
--- firefox-102.3.0.orig/Cargo.lock
+++ firefox-102.3.0/Cargo.lock
@@ -2228,8 +2228,6 @@ dependencies = [
 [[package]]
 name = "glslopt"
 version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74a3f5c04450dfdadb4b08f6e5ee6f5110f674de1acbd6199bfec68392a8cbaf"
 dependencies = [
  "cc",
 ]
Index: firefox-102.3.0/Cargo.toml
===================================================================
--- firefox-102.3.0.orig/Cargo.toml
+++ firefox-102.3.0/Cargo.toml
@@ -116,6 +116,7 @@ libudev-sys = { path = "dom/webauthn/lib
 packed_simd = { package = "packed_simd_2", git = "https://github.com/hsivonen/packed_simd", rev="f38664024b29d44c506431eada7c112629bb1aa9" }
 midir = { git = "https://github.com/mozilla/midir.git", rev = "4c11f0ffb5d6a10de4aff40a7b81218b33b94e6f" }
 minidump_writer_linux = { git = "https://github.com/rust-minidump/minidump-writer.git", rev = "75ada456c92a429704691a85e1cb42fef8cafc0d" }
+glslopt = { path = "third_party/rust/glslopt/" }
 
 # Patch mio 0.6 to use winapi 0.3 and miow 0.3, getting rid of winapi 0.2.
 # There is not going to be new version of mio 0.6, mio now being >= 0.7.11.
Index: firefox-102.3.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/include/codec/SkEncodedOrigin.h
+++ firefox-102.3.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h
@@ -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;
 }
 
 
Index: firefox-102.3.0/gfx/skia/skia/include/private/GrTypesPriv.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/include/private/GrTypesPriv.h
+++ firefox-102.3.0/gfx/skia/skia/include/private/GrTypesPriv.h
@@ -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;
 }
 
 /**
Index: firefox-102.3.0/gfx/skia/skia/src/core/SkGeometry.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/core/SkGeometry.h
+++ firefox-102.3.0/gfx/skia/skia/src/core/SkGeometry.h
@@ -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.
Index: firefox-102.3.0/gfx/skia/skia/src/core/SkTextBlob.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/core/SkTextBlob.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/core/SkTextBlob.cpp
@@ -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) {
Index: firefox-102.3.0/gfx/skia/skia/src/core/SkTypeface_remote.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/core/SkTypeface_remote.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/core/SkTypeface_remote.cpp
@@ -29,6 +29,7 @@ void SkScalerContextProxy::initCache(SkS
 
 unsigned SkScalerContextProxy::generateGlyphCount()  {
     SK_ABORT("Should never be called.");
+    SkUNREACHABLE;
 }
 
 bool SkScalerContextProxy::generateAdvance(SkGlyph* glyph) {
Index: firefox-102.3.0/gfx/skia/skia/src/core/SkTypeface_remote.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/core/SkTypeface_remote.h
+++ firefox-102.3.0/gfx/skia/skia/src/core/SkTypeface_remote.h
@@ -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:
Index: firefox-102.3.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
@@ -144,6 +144,7 @@ static GrTextureDomain::Mode to_texture_
             return GrTextureDomain::kRepeat_Mode;
         default:
             SK_ABORT("Unsupported tile mode.");
+	    SkUNREACHABLE;
     }
 }
 #endif
Index: firefox-102.3.0/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp
@@ -1701,6 +1701,7 @@ static SkImageFilterLight* create_random
         }
         default:
             SK_ABORT("Unexpected value.");
+	    SkUNREACHABLE;
     }
 }
 
Index: firefox-102.3.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
@@ -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 {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/GrDataUtils.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/GrDataUtils.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/GrDataUtils.cpp
@@ -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'
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/GrFragmentProcessor.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/GrFragmentProcessor.h
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/GrFragmentProcessor.h
@@ -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
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/GrPathRendering.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/GrPathRendering.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/GrPathRendering.cpp
@@ -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<
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/GrPathRendering.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/GrPathRendering.h
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/GrPathRendering.h
@@ -63,6 +63,7 @@ public:
 
             default:
                 SK_ABORT("Unknown path transform type");
+		SkUNREACHABLE;
         }
     }
 
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp
@@ -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
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/GrReducedClip.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/GrReducedClip.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/GrReducedClip.cpp
@@ -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) {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/GrResourceCache.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/GrResourceCache.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/GrResourceCache.cpp
@@ -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);
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/GrShaderVar.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/GrShaderVar.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/GrShaderVar.cpp
@@ -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 {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/SkGpuDevice.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/SkGpuDevice.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/SkGpuDevice.cpp
@@ -283,6 +283,7 @@ static inline GrPrimitiveType point_mode
             return GrPrimitiveType::kLineStrip;
     }
     SK_ABORT("Unexpected mode");
+    SkUNREACHABLE;
 }
 
 void SkGpuDevice::drawPoints(SkCanvas::PointMode mode,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/SkGr.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/SkGr.h
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/SkGr.h
@@ -159,6 +159,7 @@ static inline GrPrimitiveType SkVertexMo
             break;
     }
     SK_ABORT("Invalid mode");
+    SkUNREACHABLE;
 }
 
 //////////////////////////////////////////////////////////////////////////////
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h
@@ -240,6 +240,7 @@ inline const char* GrCCCoverageProcessor
         case PrimitiveType::kConics: return "kConics";
     }
     SK_ABORT("Invalid PrimitiveType");
+    SkUNREACHABLE;
 }
 
 inline void GrCCCoverageProcessor::TriPointInstance::set(
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp
@@ -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,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h
@@ -175,5 +175,6 @@ inline bool GrCCStrokeGeometry::IsIntern
             return false;
     }
     SK_ABORT("Invalid GrCCStrokeGeometry::Verb.");
+    SkUNREACHABLE;
 }
 #endif
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
@@ -164,6 +164,7 @@ GrPathRenderer::CanDrawPath GrCoverageCo
     }
 
     SK_ABORT("Invalid stroke style.");
+    SkUNREACHABLE;
 }
 
 bool GrCoverageCountingPathRenderer::onDrawPath(const DrawPathArgs& args) {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp
@@ -550,4 +550,5 @@ GrGLSLPrimitiveProcessor* GrVSCoveragePr
             return new Impl(std::move(shader), 4);
     }
     SK_ABORT("Invalid PrimitiveType");
+    SkUNREACHABLE;
 }
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp
@@ -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,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp
@@ -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,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp
@@ -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) {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp
@@ -58,6 +58,7 @@ void main() {
                 return color * input;
         }
         SK_ABORT("Unexpected mode");
+	SkUNREACHABLE;
     }
 }
 
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp
@@ -204,6 +204,7 @@ const GrXPFactory* GrCoverageSetOpXPFact
     }
 #undef _CONSTEXPR_
     SK_ABORT("Unknown region op.");
+    SkUNREACHABLE;
 }
 
 sk_sp<const GrXferProcessor> GrCoverageSetOpXPFactory::makeXferProcessor(
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp
@@ -753,6 +753,7 @@ const GrXPFactory* GrPorterDuffXPFactory
             return &gScreenPDXPF;
         default:
             SK_ABORT("Unexpected blend mode.");
+	    SkUNREACHABLE;
     }
 }
 
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp
@@ -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
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h
@@ -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));
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/geometry/GrShape.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/geometry/GrShape.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/geometry/GrShape.cpp
@@ -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 {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp
@@ -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 {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp
@@ -68,4 +68,5 @@ bool GrGLGetGLSLGeneration(const GrGLInt
         return true;
     }
     SK_ABORT("Unknown GL Standard");
+    SkUNREACHABLE;
 }
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp
@@ -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;
     }
 }
 
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp
@@ -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;
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp
@@ -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.
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp
@@ -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,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp
@@ -98,4 +98,5 @@ const char* GrGLSLTypeString(GrSLType t)
             return "sampler";
     }
     SK_ABORT("Unknown shader var type.");
+    SkUNREACHABLE;
 }
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp
@@ -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,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp
@@ -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,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm
@@ -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 {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm
@@ -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) {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm
@@ -38,6 +38,7 @@ static inline MTLSamplerAddressMode wrap
             }
     }
     SK_ABORT("Unknown wrap mode.");
+    SkUNREACHABLE;
 }
 
 GrMtlSampler* GrMtlSampler::Create(const GrMtlGpu* gpu, const GrSamplerState& samplerState) {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm
@@ -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
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm
@@ -112,6 +112,7 @@ bool GrPixelConfigToMTLFormat(GrPixelCon
             return true;
     }
     SK_ABORT("Unexpected config");
+    SkUNREACHABLE;
 }
 
 MTLTextureDescriptor* GrGetMTLTextureDescriptor(id<MTLTexture> mtlTexture) {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp
@@ -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) {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp
@@ -823,4 +823,5 @@ static bool can_use_hw_derivatives_with_
         }
     }
     SK_ABORT("Invalid round rect type.");
+    SkUNREACHABLE;
 }
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp
@@ -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;
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp
@@ -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;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/text/GrTextBlob.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/text/GrTextBlob.h
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/text/GrTextBlob.h
@@ -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; }
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp
@@ -284,4 +284,5 @@ bool GrTextBlob::VertexRegenerator::rege
         return true;
     }
     SK_ABORT("Should not get here");
+    SkUNREACHABLE;
 }
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp
@@ -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 {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp
@@ -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,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp
@@ -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,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp
@@ -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,
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h
@@ -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 {
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp
@@ -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;
 }
 
 
Index: firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp
@@ -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) {
Index: firefox-102.3.0/gfx/skia/skia/src/pdf/SkPDFTag.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/pdf/SkPDFTag.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/pdf/SkPDFTag.cpp
@@ -64,6 +64,7 @@ static const char* tag_name_from_type(Sk
         #undef M
     }
     SK_ABORT("bad tag");
+    SkUNREACHABLE;
 }
 
 struct SkPDFTagNode {
Index: firefox-102.3.0/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
@@ -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 {
Index: firefox-102.3.0/gfx/skia/skia/src/shaders/SkImageShader.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/shaders/SkImageShader.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/shaders/SkImageShader.cpp
@@ -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(
Index: firefox-102.3.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp
===================================================================
--- firefox-102.3.0.orig/gfx/skia/skia/src/utils/SkShadowUtils.cpp
+++ firefox-102.3.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp
@@ -149,6 +149,7 @@ struct SpotVerticesFactory {
                 return false;
         }
         SK_ABORT("Uninitialized occluder type?");
+	SkUNREACHABLE;
     }
 
     sk_sp<SkVertices> makeVertices(const SkPath& path, const SkMatrix& ctm,
Index: firefox-102.3.0/intl/icu/source/i18n/number_rounding.cpp
===================================================================
--- firefox-102.3.0.orig/intl/icu/source/i18n/number_rounding.cpp
+++ firefox-102.3.0/intl/icu/source/i18n/number_rounding.cpp
@@ -283,6 +283,7 @@ FractionPrecision Precision::constructFr
     settings.fMaxFrac = static_cast<digits_t>(maxFrac);
     settings.fMinSig = -1;
     settings.fMaxSig = -1;
+    settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
     PrecisionUnion union_;
     union_.fracSig = settings;
     return {RND_FRACTION, union_};
@@ -294,6 +295,7 @@ Precision Precision::constructSignifican
     settings.fMaxFrac = -1;
     settings.fMinSig = static_cast<digits_t>(minSig);
     settings.fMaxSig = static_cast<digits_t>(maxSig);
+    settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
     PrecisionUnion union_;
     union_.fracSig = settings;
     return {RND_SIGNIFICANT, union_};
Index: firefox-102.3.0/third_party/libwebrtc/api/adaptation/resource.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/api/adaptation/resource.cc
+++ firefox-102.3.0/third_party/libwebrtc/api/adaptation/resource.cc
@@ -9,6 +9,7 @@
  */
 
 #include "api/adaptation/resource.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 
@@ -18,6 +19,9 @@ const char* ResourceUsageStateToString(R
       return "kOveruse";
     case ResourceUsageState::kUnderuse:
       return "kUnderuse";
+    default:
+      RTC_NOTREACHED();
+      return "";
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/api/rtp_parameters.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/api/rtp_parameters.cc
+++ firefox-102.3.0/third_party/libwebrtc/api/rtp_parameters.cc
@@ -29,6 +29,9 @@ const char* DegradationPreferenceToStrin
       return "maintain-resolution";
     case DegradationPreference::BALANCED:
       return "balanced";
+    default:
+      RTC_NOTREACHED();
+      return "";
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/api/video_codecs/video_codec.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/api/video_codecs/video_codec.cc
+++ firefox-102.3.0/third_party/libwebrtc/api/video_codecs/video_codec.cc
@@ -119,6 +119,9 @@ const char* CodecTypeToPayloadString(Vid
       return kPayloadNameMultiplex;
     case kVideoCodecGeneric:
       return kPayloadNameGeneric;
+    default:
+      RTC_NOTREACHED();
+      return "";
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
+++ firefox-102.3.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
@@ -161,6 +161,9 @@ class VideoEncoderSoftwareFallbackWrappe
       case EncoderState::kFallbackDueToFailure:
       case EncoderState::kForcedFallback:
         return fallback_encoder_.get();
+    default:
+      RTC_NOTREACHED();
+      return nullptr;
     }
   }
 
@@ -339,6 +342,9 @@ int32_t VideoEncoderSoftwareFallbackWrap
     case EncoderState::kFallbackDueToFailure:
     case EncoderState::kForcedFallback:
       return fallback_encoder_->Encode(frame, frame_types);
+    default:
+      RTC_NOTREACHED();
+      return WEBRTC_VIDEO_CODEC_ERROR;
   }
 }
 int32_t VideoEncoderSoftwareFallbackWrapper::EncodeWithMainEncoder(
Index: firefox-102.3.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
+++ firefox-102.3.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
@@ -161,6 +161,9 @@ const char* Adaptation::StatusToString(A
       return "kAdaptationDisabled";
     case Status::kRejectedByConstraint:
       return "kRejectedByConstraint";
+    default:
+      RTC_NOTREACHED();
+      return "";
   }
 }
 
@@ -380,6 +383,9 @@ VideoStreamAdapter::RestrictionsOrState
     }
     case DegradationPreference::DISABLED:
       return Adaptation::Status::kAdaptationDisabled;
+    default:
+      RTC_NOTREACHED();
+      return Adaptation::Status::kAdaptationDisabled;
   }
 }
 
@@ -459,6 +465,9 @@ VideoStreamAdapter::GetAdaptationDownSte
     }
     case DegradationPreference::DISABLED:
       return Adaptation::Status::kAdaptationDisabled;
+    default:
+      RTC_NOTREACHED();
+      return Adaptation::Status::kAdaptationDisabled;
   }
 }
 
@@ -599,6 +608,8 @@ Adaptation VideoStreamAdapter::GetAdaptD
     }
     default:
       RTC_NOTREACHED();
+      return RestrictionsOrStateToAdaptation(
+          Adaptation::Status::kAdaptationDisabled, input_state);
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/call/simulated_network.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/call/simulated_network.cc
+++ firefox-102.3.0/third_party/libwebrtc/call/simulated_network.cc
@@ -77,6 +77,8 @@ bool CoDelSimulation::DropDequeuedPacket
       }
       return false;
   }
+  RTC_NOTREACHED();
+  return false;
 }
 
 SimulatedNetwork::SimulatedNetwork(Config config, uint64_t random_seed)
Index: firefox-102.3.0/third_party/libwebrtc/call/video_send_stream.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/call/video_send_stream.cc
+++ firefox-102.3.0/third_party/libwebrtc/call/video_send_stream.cc
@@ -27,6 +27,9 @@ const char* StreamTypeToString(VideoSend
       return "rtx";
     case VideoSendStream::StreamStats::StreamType::kFlexfec:
       return "flexfec";
+    default:
+        RTC_NOTREACHED();
+        return "";
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/modules/audio_coding/neteq/decision_logic.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/modules/audio_coding/neteq/decision_logic.cc
+++ firefox-102.3.0/third_party/libwebrtc/modules/audio_coding/neteq/decision_logic.cc
@@ -352,7 +352,7 @@ NetEq::Operation DecisionLogic::FuturePa
       prev_mode == NetEq::Mode::kCodecInternalCng) {
     size_t cur_size_samples =
         estimate_dtx_delay_
-            ? cur_size_samples = span_samples_in_packet_buffer
+            ? span_samples_in_packet_buffer
             : num_packets_in_packet_buffer * decoder_frame_length;
     // Target level is in number of packets in Q8.
     const size_t target_level_samples =
Index: firefox-102.3.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
+++ firefox-102.3.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
@@ -113,6 +113,9 @@ GainControl::Mode Agc1ConfigModeToInterf
       return GainControl::kAdaptiveDigital;
     case Agc1Config::kFixedDigital:
       return GainControl::kFixedDigital;
+    default:
+      RTC_NOTREACHED();
+      return GainControl::kAdaptiveAnalog;
   }
 }
 
@@ -1852,6 +1855,7 @@ void AudioProcessingImpl::InitializeNois
               return NsConfig::SuppressionLevel::k21dB;
             default:
               RTC_NOTREACHED();
+              return NsConfig::SuppressionLevel::k6dB;
           }
         };
 
Index: firefox-102.3.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
+++ firefox-102.3.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
@@ -27,6 +27,9 @@ std::string NoiseSuppressionLevelToStrin
       return "High";
     case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh:
       return "VeryHigh";
+    default:
+      RTC_NOTREACHED();
+      return "";
   }
 }
 
@@ -39,6 +42,9 @@ std::string GainController1ModeToString(
       return "AdaptiveDigital";
     case AudioProcessing::Config::GainController1::Mode::kFixedDigital:
       return "FixedDigital";
+    default:
+      RTC_NOTREACHED();
+      return "";
   }
 }
 
@@ -49,6 +55,9 @@ std::string GainController2LevelEstimato
       return "Rms";
     case AudioProcessing::Config::GainController2::LevelEstimator::kPeak:
       return "Peak";
+    default:
+      RTC_NOTREACHED();
+      return "";
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/modules/pacing/pacing_controller.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/modules/pacing/pacing_controller.cc
+++ firefox-102.3.0/third_party/libwebrtc/modules/pacing/pacing_controller.cc
@@ -83,6 +83,9 @@ int GetPriorityForType(RtpPacketMediaTyp
       // Packets that are in themselves likely useless, only sent to keep the
       // BWE high.
       return kFirstPriority + 4;
+    default:
+      RTC_NOTREACHED();
+      return -1;
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
+++ firefox-102.3.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
@@ -36,6 +36,9 @@ std::unique_ptr<VideoRtpDepacketizer> Cr
     case kVideoCodecGeneric:
     case kVideoCodecMultiplex:
       return std::make_unique<VideoRtpDepacketizerGeneric>();
+    default:
+      RTC_NOTREACHED();
+      return nullptr;
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
+++ firefox-102.3.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
@@ -130,6 +130,9 @@ bool IsNonVolatile(RTPExtensionType type
       // TODO: Mozilla implement for CsrcAudioLevel
       RTC_CHECK(false);
       return false;
+    default:
+      RTC_NOTREACHED();
+      return false;
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
+++ firefox-102.3.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
@@ -45,6 +45,9 @@ const char* FrameTypeToString(AudioFrame
       return "audio_speech";
     case AudioFrameType::kAudioFrameCN:
       return "audio_cn";
+    default:
+      RTC_NOTREACHED();
+      return "";
   }
 }
 #endif
Index: firefox-102.3.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
+++ firefox-102.3.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
@@ -28,6 +28,9 @@ TemporalLayersChecker::CreateTemporalLay
     case Vp8TemporalLayersType::kBitrateDynamic:
       // Conference mode temporal layering for screen content in base stream.
       return std::make_unique<TemporalLayersChecker>(num_temporal_layers);
+    default:
+      RTC_NOTREACHED();
+      return nullptr;
   }
 }
 
Index: firefox-102.3.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
===================================================================
--- firefox-102.3.0.orig/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
+++ firefox-102.3.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
@@ -54,6 +54,9 @@ std::string ToString(VideoAdaptationReas
       return "quality";
     case VideoAdaptationReason::kCpu:
       return "cpu";
+    default:
+      RTC_NOTREACHED();
+      return "";
   }
 }
 
Index: firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp
===================================================================
--- firefox-102.3.0.orig/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp
+++ firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp
@@ -2651,6 +2651,7 @@ get_type_name_for_precision_qualifier(co
    default:
       unreachable("Unsupported type");
    } /* base type */
+   return "";
 }
 
 static unsigned
Index: firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp
===================================================================
--- firefox-102.3.0.orig/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp
+++ firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp
@@ -624,6 +624,7 @@ ir_expression::get_num_operands(ir_expre
       return 4;
 
    unreachable("Could not calculate number of operands");
+   return -1;
 }
 
 #include "ir_expression_operation_strings.h"
Index: firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp
===================================================================
--- firefox-102.3.0.orig/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp
+++ firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp
@@ -239,6 +239,7 @@ incremented_before_terminator(ir_loop *l
    }
 
    unreachable("Unable to find induction variable");
+   return false;
 }
 
 /**
Index: firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp
===================================================================
--- firefox-102.3.0.orig/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp
+++ firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp
@@ -229,6 +229,7 @@ write_mask_to_swizzle(unsigned write_mas
    case WRITEMASK_W: return SWIZZLE_W;
    }
    unreachable("not reached");
+   return 0;
 }
 
 /**
Index: firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp
===================================================================
--- firefox-102.3.0.orig/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp
+++ firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp
@@ -460,6 +460,7 @@ const glsl_type *glsl_type::get_bare_typ
    }
 
    unreachable("Invalid base type");
+   return nullptr;
 }
 
 const glsl_type *glsl_type::get_float16_type() const
@@ -2016,6 +2017,7 @@ glsl_type::get_explicit_std140_type(bool
       return type;
    } else {
       unreachable("Invalid type for UBO or SSBO");
+      return nullptr;
    }
 }
 
@@ -2374,6 +2376,7 @@ glsl_type::get_explicit_std430_type(bool
       return type;
    } else {
       unreachable("Invalid type for SSBO");
+      return nullptr;
    }
 }
 
@@ -2448,6 +2451,7 @@ glsl_type::get_explicit_type_for_size_al
                                      this->matrix_columns, stride, false);
    } else {
       unreachable("Unhandled type.");
+      return nullptr;
    }
 }
 
@@ -2948,6 +2952,7 @@ glsl_get_sampler_dim_coordinate_componen
       return 3;
    default:
       unreachable("Unknown sampler dim");
+      return -1;
    }
 }
 
Index: firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h
===================================================================
--- firefox-102.3.0.orig/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h
+++ firefox-102.3.0/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h
@@ -185,6 +185,7 @@ _mesa_shader_stage_from_subroutine_unifo
       return MESA_SHADER_TESS_EVAL;
    }
    unreachable("not reached");
+   return MESA_SHADER_NONE;
 }
 
 static inline gl_shader_stage
@@ -205,6 +206,7 @@ _mesa_shader_stage_from_subroutine(GLenu
       return MESA_SHADER_TESS_EVAL;
    }
    unreachable("not reached");
+   return MESA_SHADER_NONE;
 }
 
 static inline GLenum
@@ -230,6 +232,7 @@ _mesa_shader_stage_to_subroutine(gl_shad
       break;
    }
    unreachable("not reached");
+   return GL_VERTEX_PROGRAM_ARB;
 }
 
 static inline GLenum
@@ -253,6 +256,7 @@ _mesa_shader_stage_to_subroutine_uniform
       break;
    }
    unreachable("not reached");
+   return GL_VERTEX_PROGRAM_ARB;
 }
 
 extern bool
