Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:manfred-h:mozilla:esr:legacy
thunderbird102
mozilla-silence-no-return-type.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mozilla-silence-no-return-type.patch of Package thunderbird102
# HG changeset patch # Parent 602c790a8615e43dbfe8ce15a30d020e0fb4f5e7 diff --git a/Cargo.lock b/Cargo.lock --- a/Cargo.lock +++ b/Cargo.lock @@ -2298,18 +2298,16 @@ name = "glsl-to-cxx" version = "0.1.0" dependencies = [ "glsl", ] [[package]] name = "glslopt" version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74a3f5c04450dfdadb4b08f6e5ee6f5110f674de1acbd6199bfec68392a8cbaf" dependencies = [ "cc", ] [[package]] name = "gluesmith" version = "0.1.0" dependencies = [ diff --git a/Cargo.toml b/Cargo.toml --- a/Cargo.toml +++ b/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. diff --git a/gfx/skia/skia/include/codec/SkEncodedOrigin.h b/gfx/skia/skia/include/codec/SkEncodedOrigin.h --- a/gfx/skia/skia/include/codec/SkEncodedOrigin.h +++ b/gfx/skia/skia/include/codec/SkEncodedOrigin.h @@ -36,12 +36,13 @@ static inline SkMatrix SkEncodedOriginTo case kBottomRight_SkEncodedOrigin: return SkMatrix::MakeAll(-1, 0, w, 0, -1, h, 0, 0, 1); case kBottomLeft_SkEncodedOrigin: return SkMatrix::MakeAll( 1, 0, 0, 0, -1, h, 0, 0, 1); case kLeftTop_SkEncodedOrigin: return SkMatrix::MakeAll( 0, 1, 0, 1, 0, 0, 0, 0, 1); case kRightTop_SkEncodedOrigin: return SkMatrix::MakeAll( 0, -1, h, 1, 0, 0, 0, 0, 1); case kRightBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0, -1, h, -1, 0, w, 0, 0, 1); case kLeftBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0, 1, 0, -1, 0, w, 0, 0, 1); } SK_ABORT("Unexpected origin"); + SkUNREACHABLE; } #endif // SkEncodedOrigin_DEFINED diff --git a/gfx/skia/skia/include/private/GrTypesPriv.h b/gfx/skia/skia/include/private/GrTypesPriv.h --- a/gfx/skia/skia/include/private/GrTypesPriv.h +++ b/gfx/skia/skia/include/private/GrTypesPriv.h @@ -535,32 +535,34 @@ static inline GrSLType GrSLCombinedSampl return kTexture2DSampler_GrSLType; case GrTextureType::kRectangle: return kTexture2DRectSampler_GrSLType; case GrTextureType::kExternal: return kTextureExternalSampler_GrSLType; default: SK_ABORT("Unexpected texture type"); } + SkUNREACHABLE; } /** Rectangle and external textures only support the clamp wrap mode and do not support * MIP maps. */ static inline bool GrTextureTypeHasRestrictedSampling(GrTextureType type) { switch (type) { case GrTextureType::k2D: return false; case GrTextureType::kRectangle: return true; case GrTextureType::kExternal: return true; default: SK_ABORT("Unexpected texture type"); } + SkUNREACHABLE; } static constexpr bool GrSLTypeIsCombinedSamplerType(GrSLType type) { switch (type) { case kTexture2DSampler_GrSLType: case kTextureExternalSampler_GrSLType: case kTexture2DRectSampler_GrSLType: return true; @@ -853,16 +855,17 @@ static inline size_t GrCompressedFormatD switch (compressionType) { case SkImage::kETC1_CompressionType: SkASSERT((width & 3) == 0); SkASSERT((height & 3) == 0); return (width >> 2) * (height >> 2) * 8; } SK_ABORT("Invalid pixel config"); + SkUNREACHABLE; } /** * Like SkColorType this describes a layout of pixel data in CPU memory. It specifies the channels, * their type, and width. This exists so that the GPU backend can have private types that have no * analog in the public facing SkColorType enum and omit types not implemented in the GPU backend. * It does not refer to a texture format and the mapping to texture formats may be many-to-many. * It does not specify the sRGB encoding of the stored values. The components are listed in order of diff --git a/gfx/skia/skia/src/core/SkGeometry.h b/gfx/skia/skia/src/core/SkGeometry.h --- a/gfx/skia/skia/src/core/SkGeometry.h +++ b/gfx/skia/skia/src/core/SkGeometry.h @@ -177,28 +177,30 @@ static inline bool SkCubicIsDegenerate(S case SkCubicType::kLocalCusp: case SkCubicType::kCuspAtInfinity: return false; case SkCubicType::kQuadratic: case SkCubicType::kLineOrPoint: return true; } SK_ABORT("Invalid SkCubicType"); + SkUNREACHABLE; } static inline const char* SkCubicTypeName(SkCubicType type) { switch (type) { case SkCubicType::kSerpentine: return "kSerpentine"; case SkCubicType::kLoop: return "kLoop"; case SkCubicType::kLocalCusp: return "kLocalCusp"; case SkCubicType::kCuspAtInfinity: return "kCuspAtInfinity"; case SkCubicType::kQuadratic: return "kQuadratic"; case SkCubicType::kLineOrPoint: return "kLineOrPoint"; } SK_ABORT("Invalid SkCubicType"); + SkUNREACHABLE; } /** Returns the cubic classification. t[],s[] are set to the two homogeneous parameter values at which points the lines L & M intersect with K, sorted from smallest to largest and oriented so positive values of the implicit are on the "left" side. For a serpentine curve they are the inflection points. For a loop they are the double point. For a local cusp, they are both equal and denote the cusp point. diff --git a/gfx/skia/skia/src/core/SkTextBlob.cpp b/gfx/skia/skia/src/core/SkTextBlob.cpp --- a/gfx/skia/skia/src/core/SkTextBlob.cpp +++ b/gfx/skia/skia/src/core/SkTextBlob.cpp @@ -196,16 +196,17 @@ unsigned SkTextBlob::ScalarsPerGlyph(Gly } void SkTextBlob::operator delete(void* p) { sk_free(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) { return p; } SkTextBlobRunIterator::SkTextBlobRunIterator(const SkTextBlob* blob) : fCurrentRun(SkTextBlob::RunRecord::First(blob)) { diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.cpp b/gfx/skia/skia/src/core/SkTypeface_remote.cpp --- a/gfx/skia/skia/src/core/SkTypeface_remote.cpp +++ b/gfx/skia/skia/src/core/SkTypeface_remote.cpp @@ -24,16 +24,17 @@ void SkScalerContextProxy::initCache(SkS SkASSERT(cache != nullptr); fCache = cache; fStrikeCache = strikeCache; } unsigned SkScalerContextProxy::generateGlyphCount() { SK_ABORT("Should never be called."); + SkUNREACHABLE; } bool SkScalerContextProxy::generateAdvance(SkGlyph* glyph) { return false; } void SkScalerContextProxy::generateMetrics(SkGlyph* glyph) { TRACE_EVENT1("skia", "generateMetrics", "rec", TRACE_STR_COPY(this->getRec().dump().c_str())); diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core/SkTypeface_remote.h --- a/gfx/skia/skia/src/core/SkTypeface_remote.h +++ b/gfx/skia/skia/src/core/SkTypeface_remote.h @@ -58,46 +58,54 @@ public: , fGlyphCount{glyphCount} , fIsLogging{isLogging} , fDiscardableManager{std::move(manager)} {} SkFontID remoteTypefaceID() const {return fFontId;} int glyphCount() const {return fGlyphCount;} 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. *familyName = ""; } 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 { return new SkScalerContextProxy(sk_ref_sp(const_cast<SkTypefaceProxy*>(this)), effects, desc, fDiscardableManager); } void onFilterRec(SkScalerContextRec* rec) const override { // The rec filtering is already applied by the server when generating @@ -111,26 +119,28 @@ protected: } void getPostScriptGlyphNames(SkString*) const override { SK_ABORT("Should never be called."); } 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."); } int onCountGlyphs() const override { return this->glyphCount(); } void* onGetCTFontRef() const override { SK_ABORT("Should never be called."); + SkUNREACHABLE; } private: const SkFontID fFontId; const int fGlyphCount; const bool fIsLogging; sk_sp<SkStrikeClient::DiscardableHandleManager> fDiscardableManager; diff --git a/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp b/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp --- a/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp +++ b/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp @@ -139,16 +139,17 @@ static GrTextureDomain::Mode to_texture_ case SkTileMode::kDecal: return GrTextureDomain::kDecal_Mode; case SkTileMode::kMirror: // TODO (michaelludwig) - Support mirror mode, treat as repeat for now case SkTileMode::kRepeat: return GrTextureDomain::kRepeat_Mode; default: SK_ABORT("Unsupported tile mode."); + SkUNREACHABLE; } } #endif // This is defined by the SVG spec: // https://drafts.fxtf.org/filter-effects/#feGaussianBlurElement static int calculate_window(double sigma) { // NB 136 is the largest sigma that will not cause a buffer full of 255 mask values to overflow diff --git a/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp b/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp --- a/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp +++ b/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp @@ -1696,16 +1696,17 @@ static SkImageFilterLight* create_random return new SkPointLight(random_point3(random), random->nextU()); } case 2: { return new SkSpotLight(random_point3(random), random_point3(random), random->nextUScalar1(), random->nextUScalar1(), random->nextU()); } default: SK_ABORT("Unexpected value."); + SkUNREACHABLE; } } std::unique_ptr<GrFragmentProcessor> GrDiffuseLightingEffect::TestCreate(GrProcessorTestData* d) { int texIdx = d->fRandom->nextBool() ? GrProcessorUnitTest::kSkiaPMTextureIdx : GrProcessorUnitTest::kAlphaTextureIdx; sk_sp<GrTextureProxy> proxy = d->textureProxy(texIdx); SkScalar surfaceScale = d->fRandom->nextSScalar1(); diff --git a/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp b/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp --- a/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp +++ b/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp @@ -64,16 +64,17 @@ int SkFontMgr_Indirect::onCountFamilies( } void SkFontMgr_Indirect::onGetFamilyName(int index, SkString* familyName) const { SK_ABORT("Not implemented"); } SkFontStyleSet* SkFontMgr_Indirect::onCreateStyleSet(int index) const { SK_ABORT("Not implemented"); + SkUNREACHABLE; } SkFontStyleSet* SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const { return new SkStyleSet_Indirect(this, -1, fProxy->matchName(familyName)); } SkTypeface* SkFontMgr_Indirect::createTypefaceFromFontId(const SkFontIdentity& id) const { if (id.fDataId == SkFontIdentity::kInvalidDataId) { diff --git a/gfx/skia/skia/src/gpu/GrDataUtils.cpp b/gfx/skia/skia/src/gpu/GrDataUtils.cpp --- a/gfx/skia/skia/src/gpu/GrDataUtils.cpp +++ b/gfx/skia/skia/src/gpu/GrDataUtils.cpp @@ -123,25 +123,27 @@ static int num_ETC1_blocks(int w, int h) size_t GrCompressedDataSize(SkImage::CompressionType type, int width, int height) { switch (type) { case SkImage::kETC1_CompressionType: int numBlocks = num_ETC1_blocks(width, height); return numBlocks * sizeof(ETC1Block); } SK_ABORT("Unexpected compression type"); + SkUNREACHABLE; } size_t GrCompressedRowBytes(SkImage::CompressionType type, int width) { switch (type) { case SkImage::kETC1_CompressionType: int numBlocksWidth = num_ETC1_blocks_w(width); return numBlocksWidth * sizeof(ETC1Block); } SK_ABORT("Unexpected compression type"); + SkUNREACHABLE; } // Fill in 'dest' with ETC1 blocks derived from 'colorf' static void fillin_ETC1_with_color(int width, int height, const SkColor4f& colorf, void* dest) { SkColor color = colorf.toSkColor(); ETC1Block block; create_etc1_block(color, &block); diff --git a/gfx/skia/skia/src/gpu/GrFragmentProcessor.h b/gfx/skia/skia/src/gpu/GrFragmentProcessor.h --- a/gfx/skia/skia/src/gpu/GrFragmentProcessor.h +++ b/gfx/skia/skia/src/gpu/GrFragmentProcessor.h @@ -370,16 +370,17 @@ protected: const Args&... samps) { return (0 == i) ? samp0 : IthTextureSampler(i - 1, samps...); } inline static const TextureSampler& IthTextureSampler(int i); 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 for the given GrFragmentProcessor; caller is responsible for deleting the object. */ virtual GrGLSLFragmentProcessor* onCreateGLSLInstance() const = 0; /** Implemented using GLFragmentProcessor::GenKey as described in this class's comment. */ diff --git a/gfx/skia/skia/src/gpu/GrPathRendering.cpp b/gfx/skia/skia/src/gpu/GrPathRendering.cpp --- a/gfx/skia/skia/src/gpu/GrPathRendering.cpp +++ b/gfx/skia/skia/src/gpu/GrPathRendering.cpp @@ -14,16 +14,17 @@ #include "src/gpu/GrPathRendering.h" #include "src/gpu/GrProgramInfo.h" #include "src/gpu/GrRenderTarget.h" const GrUserStencilSettings& GrPathRendering::GetStencilPassSettings(FillType fill) { switch (fill) { default: SK_ABORT("Unexpected path fill."); + SkUNREACHABLE; case GrPathRendering::kWinding_FillType: { constexpr static GrUserStencilSettings kWindingStencilPass( GrUserStencilSettings::StaticInit< 0xffff, GrUserStencilTest::kAlwaysIfInClip, 0xffff, GrUserStencilOp::kIncWrap, GrUserStencilOp::kIncWrap, diff --git a/gfx/skia/skia/src/gpu/GrPathRendering.h b/gfx/skia/skia/src/gpu/GrPathRendering.h --- a/gfx/skia/skia/src/gpu/GrPathRendering.h +++ b/gfx/skia/skia/src/gpu/GrPathRendering.h @@ -58,16 +58,17 @@ public: return 1; case kTranslate_PathTransformType: return 2; case kAffine_PathTransformType: return 6; default: SK_ABORT("Unknown path transform type"); + SkUNREACHABLE; } } // No native support for inverse at this time enum FillType { /** Specifies that "inside" is computed by a non-zero sum of signed edge crossings */ diff --git a/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp b/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp --- a/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp +++ b/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp @@ -15,11 +15,12 @@ std::unique_ptr<GrFragmentProcessor> GrP std::unique_ptr<GrFragmentProcessor> fp; do { fp = GrFragmentProcessorTestFactory::Make(data); SkASSERT(fp); } while (fp->numChildProcessors() != 0); return fp; #else SK_ABORT("Should not be called if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS"); + SkUNREACHABLE; #endif } #endif diff --git a/gfx/skia/skia/src/gpu/GrReducedClip.cpp b/gfx/skia/skia/src/gpu/GrReducedClip.cpp --- a/gfx/skia/skia/src/gpu/GrReducedClip.cpp +++ b/gfx/skia/skia/src/gpu/GrReducedClip.cpp @@ -520,16 +520,17 @@ GrReducedClip::ClipResult GrReducedClip: GrAA(element->isAA())); case Element::DeviceSpaceType::kPath: return this->addAnalyticFP(element->getDeviceSpacePath(), Invert(element->isInverseFilled()), GrAA(element->isAA())); } SK_ABORT("Unexpected DeviceSpaceType"); + SkUNREACHABLE; } GrReducedClip::ClipResult GrReducedClip::clipOutsideElement(const Element* element) { switch (element->getDeviceSpaceType()) { case Element::DeviceSpaceType::kEmpty: return ClipResult::kMadeEmpty; case Element::DeviceSpaceType::kRect: @@ -586,16 +587,17 @@ GrReducedClip::ClipResult GrReducedClip: } case Element::DeviceSpaceType::kPath: return this->addAnalyticFP(element->getDeviceSpacePath(), Invert(!element->isInverseFilled()), GrAA(element->isAA())); } SK_ABORT("Unexpected DeviceSpaceType"); + SkUNREACHABLE; } inline void GrReducedClip::addWindowRectangle(const SkRect& elementInteriorRect, bool elementIsAA) { SkIRect window; if (!elementIsAA) { elementInteriorRect.round(&window); } else { elementInteriorRect.roundIn(&window); diff --git a/gfx/skia/skia/src/gpu/GrResourceCache.cpp b/gfx/skia/skia/src/gpu/GrResourceCache.cpp --- a/gfx/skia/skia/src/gpu/GrResourceCache.cpp +++ b/gfx/skia/skia/src/gpu/GrResourceCache.cpp @@ -35,27 +35,29 @@ DECLARE_SKMESSAGEBUS_MESSAGE(GrTextureFr ////////////////////////////////////////////////////////////////////////////// GrScratchKey::ResourceType GrScratchKey::GenerateResourceType() { static std::atomic<int32_t> nextType{INHERITED::kInvalidDomain + 1}; int32_t type = nextType++; if (type > SkTo<int32_t>(UINT16_MAX)) { SK_ABORT("Too many Resource Types"); + SkUNREACHABLE; } return static_cast<ResourceType>(type); } GrUniqueKey::Domain GrUniqueKey::GenerateDomain() { static std::atomic<int32_t> nextDomain{INHERITED::kInvalidDomain + 1}; int32_t domain = nextDomain++; if (domain > SkTo<int32_t>(UINT16_MAX)) { SK_ABORT("Too many GrUniqueKey Domains"); + SkUNREACHABLE; } return static_cast<Domain>(domain); } uint32_t GrResourceKeyHash(const uint32_t* data, size_t size) { return SkOpts::hash(data, size); } diff --git a/gfx/skia/skia/src/gpu/GrShaderVar.cpp b/gfx/skia/skia/src/gpu/GrShaderVar.cpp --- a/gfx/skia/skia/src/gpu/GrShaderVar.cpp +++ b/gfx/skia/skia/src/gpu/GrShaderVar.cpp @@ -13,30 +13,32 @@ static const char* type_modifier_string( switch (t) { case GrShaderVar::kNone_TypeModifier: return ""; case GrShaderVar::kIn_TypeModifier: return "in"; case GrShaderVar::kInOut_TypeModifier: return "inout"; case GrShaderVar::kOut_TypeModifier: return "out"; case GrShaderVar::kUniform_TypeModifier: return "uniform"; } SK_ABORT("Unknown shader variable type modifier."); + SkUNREACHABLE; } void GrShaderVar::setIOType(GrIOType ioType) { switch (ioType) { case kRW_GrIOType: return; case kRead_GrIOType: this->addModifier("readonly"); return; case kWrite_GrIOType: this->addModifier("writeonly"); return; } SK_ABORT("Unknown io type."); + SkUNREACHABLE; } void GrShaderVar::appendDecl(const GrShaderCaps* shaderCaps, SkString* out) const { SkString layout = fLayoutQualifier; if (!fLayoutQualifier.isEmpty()) { out->appendf("layout(%s) ", fLayoutQualifier.c_str()); } out->append(fExtraModifiers); diff --git a/gfx/skia/skia/src/gpu/SkGpuDevice.cpp b/gfx/skia/skia/src/gpu/SkGpuDevice.cpp --- a/gfx/skia/skia/src/gpu/SkGpuDevice.cpp +++ b/gfx/skia/skia/src/gpu/SkGpuDevice.cpp @@ -278,16 +278,17 @@ static inline GrPrimitiveType point_mode case SkCanvas::kPoints_PointMode: return GrPrimitiveType::kPoints; case SkCanvas::kLines_PointMode: return GrPrimitiveType::kLines; case SkCanvas::kPolygon_PointMode: return GrPrimitiveType::kLineStrip; } SK_ABORT("Unexpected mode"); + SkUNREACHABLE; } void SkGpuDevice::drawPoints(SkCanvas::PointMode mode, size_t count, const SkPoint pts[], const SkPaint& paint) { ASSERT_SINGLE_OWNER GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawPoints", fContext.get()); SkScalar width = paint.getStrokeWidth(); if (width < 0) { diff --git a/gfx/skia/skia/src/gpu/SkGr.h b/gfx/skia/skia/src/gpu/SkGr.h --- a/gfx/skia/skia/src/gpu/SkGr.h +++ b/gfx/skia/skia/src/gpu/SkGr.h @@ -154,16 +154,17 @@ static inline GrPrimitiveType SkVertexMo case SkVertices::kTriangles_VertexMode: return GrPrimitiveType::kTriangles; case SkVertices::kTriangleStrip_VertexMode: return GrPrimitiveType::kTriangleStrip; case SkVertices::kTriangleFan_VertexMode: break; } SK_ABORT("Invalid mode"); + SkUNREACHABLE; } ////////////////////////////////////////////////////////////////////////////// GR_STATIC_ASSERT((int)kZero_GrBlendCoeff == (int)SkBlendModeCoeff::kZero); GR_STATIC_ASSERT((int)kOne_GrBlendCoeff == (int)SkBlendModeCoeff::kOne); GR_STATIC_ASSERT((int)kSC_GrBlendCoeff == (int)SkBlendModeCoeff::kSC); GR_STATIC_ASSERT((int)kISC_GrBlendCoeff == (int)SkBlendModeCoeff::kISC); diff --git a/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h b/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h --- a/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h +++ b/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h @@ -235,16 +235,17 @@ inline const char* GrCCCoverageProcessor switch (type) { case PrimitiveType::kTriangles: return "kTriangles"; case PrimitiveType::kWeightedTriangles: return "kWeightedTriangles"; case PrimitiveType::kQuadratics: return "kQuadratics"; case PrimitiveType::kCubics: return "kCubics"; case PrimitiveType::kConics: return "kConics"; } SK_ABORT("Invalid PrimitiveType"); + SkUNREACHABLE; } inline void GrCCCoverageProcessor::TriPointInstance::set( const SkPoint p[3], const Sk2f& translate, Ordering ordering) { this->set(p[0], p[1], p[2], translate, ordering); } inline void GrCCCoverageProcessor::TriPointInstance::set( diff --git a/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp b/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp --- a/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp +++ b/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp @@ -55,16 +55,17 @@ static GrCCStrokeGeometry::Verb join_ver case SkPaint::kBevel_Join: return Verb::kBevelJoin; case SkPaint::kMiter_Join: return Verb::kMiterJoin; case SkPaint::kRound_Join: return Verb::kRoundJoin; } SK_ABORT("Invalid SkPaint::Join."); + SkUNREACHABLE; } void GrCCStrokeGeometry::beginPath(const SkStrokeRec& stroke, float strokeDevWidth, InstanceTallies* tallies) { SkASSERT(!fInsideContour); // Client should have already converted the stroke to device space (i.e. width=1 for hairline). SkASSERT(strokeDevWidth > 0); diff --git a/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h b/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h --- a/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h +++ b/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h @@ -170,10 +170,11 @@ inline bool GrCCStrokeGeometry::IsIntern case Verb::kMiterJoin: case Verb::kRoundJoin: case Verb::kSquareCap: case Verb::kRoundCap: case Verb::kEndContour: return false; } SK_ABORT("Invalid GrCCStrokeGeometry::Verb."); + SkUNREACHABLE; } #endif diff --git a/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp b/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp --- a/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp +++ b/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp @@ -159,16 +159,17 @@ GrPathRenderer::CanDrawPath GrCoverageCo return CanDrawPath::kYes; } case SkStrokeRec::kStrokeAndFill_Style: return CanDrawPath::kNo; } SK_ABORT("Invalid stroke style."); + SkUNREACHABLE; } bool GrCoverageCountingPathRenderer::onDrawPath(const DrawPathArgs& args) { SkASSERT(!fFlushing); SkIRect clipIBounds; GrRenderTargetContext* rtc = args.fRenderTargetContext; args.fClip->getConservativeBounds(rtc->width(), rtc->height(), &clipIBounds, nullptr); diff --git a/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp b/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp --- a/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp +++ b/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp @@ -545,9 +545,10 @@ GrGLSLPrimitiveProcessor* GrVSCoveragePr case PrimitiveType::kWeightedTriangles: return new Impl(std::move(shader), 3); case PrimitiveType::kQuadratics: case PrimitiveType::kCubics: case PrimitiveType::kConics: return new Impl(std::move(shader), 4); } SK_ABORT("Invalid PrimitiveType"); + SkUNREACHABLE; } diff --git a/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp b/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp --- a/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp +++ b/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp @@ -34,17 +34,19 @@ static dawn::LoadOp to_dawn_load_op(GrLo // Load should be equivalent to DontCare for desktop; Clear would // probably be better for tilers. If Dawn does add DontCare // as an extension, use it here. return dawn::LoadOp::Load; case GrLoadOp::kClear: return dawn::LoadOp::Clear; default: SK_ABORT("Invalid LoadOp"); + SkUNREACHABLE; } + SkUNREACHABLE; } GrDawnOpsRenderPass::GrDawnOpsRenderPass(GrDawnGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin, const LoadAndStoreInfo& colorInfo, const StencilLoadAndStoreInfo& stencilInfo) : INHERITED(rt, origin) , fGpu(gpu) , fColorInfo(colorInfo) { diff --git a/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp b/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp --- a/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp +++ b/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp @@ -90,16 +90,17 @@ uint32_t grsltype_to_alignment_mask(GrSL case kTexture2DSampler_GrSLType: case kTextureExternalSampler_GrSLType: case kTexture2DRectSampler_GrSLType: case kTexture2D_GrSLType: case kSampler_GrSLType: break; } SK_ABORT("Unexpected type"); + SkUNREACHABLE; } static inline uint32_t grsltype_to_size(GrSLType type) { switch(type) { case kByte_GrSLType: case kUByte_GrSLType: return 1; case kByte2_GrSLType: @@ -168,16 +169,17 @@ static inline uint32_t grsltype_to_size( case kTexture2DSampler_GrSLType: case kTextureExternalSampler_GrSLType: case kTexture2DRectSampler_GrSLType: case kTexture2D_GrSLType: case kSampler_GrSLType: break; } SK_ABORT("Unexpected type"); + SkUNREACHABLE; } uint32_t get_ubo_offset(uint32_t* currentOffset, GrSLType type, int arrayCount) { uint32_t alignmentMask = grsltype_to_alignment_mask(type); // We want to use the std140 layout here, so we must make arrays align to 16 bytes. if (arrayCount || type == kFloat2x2_GrSLType) { diff --git a/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp b/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp --- a/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp +++ b/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp @@ -71,16 +71,17 @@ static inline int grsltype_to_location_s case kUByte_GrSLType: return 1; case kTexture2D_GrSLType: return 0; case kSampler_GrSLType: return 0; } SK_ABORT("Unexpected type"); + SkUNREACHABLE; } static void finalize_helper(GrDawnVaryingHandler::VarArray& vars) { int locationIndex = 0; for (int i = 0; i < vars.count(); ++i) { GrShaderVar& var = vars[i]; SkString location; location.appendf("location = %d", locationIndex); diff --git a/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp b/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp --- a/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp +++ b/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp @@ -53,16 +53,17 @@ void main() { case InputMode::kIgnore: return color; case InputMode::kModulateA: return color * input.fA; case InputMode::kModulateRGBA: return color * input; } SK_ABORT("Unexpected mode"); + SkUNREACHABLE; } } @test(d) { SkPMColor4f color; int colorPicker = d->fRandom->nextULessThan(3); switch (colorPicker) { case 0: { diff --git a/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp b/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp --- a/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp +++ b/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp @@ -199,16 +199,17 @@ const GrXPFactory* GrCoverageSetOpXPFact static _CONSTEXPR_ const GrCoverageSetOpXPFactory gRevDiffCDXPF( SkRegion::kReverseDifference_Op, false); return &gRevDiffCDXPF; } } } #undef _CONSTEXPR_ SK_ABORT("Unknown region op."); + SkUNREACHABLE; } sk_sp<const GrXferProcessor> GrCoverageSetOpXPFactory::makeXferProcessor( const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples, const GrCaps& caps, GrClampType) const { diff --git a/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp b/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp --- a/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp +++ b/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp @@ -748,16 +748,17 @@ const GrXPFactory* GrPorterDuffXPFactory case SkBlendMode::kPlus: return &gPlusPDXPF; case SkBlendMode::kModulate: return &gModulatePDXPF; case SkBlendMode::kScreen: return &gScreenPDXPF; default: SK_ABORT("Unexpected blend mode."); + SkUNREACHABLE; } } sk_sp<const GrXferProcessor> GrPorterDuffXPFactory::makeXferProcessor( const GrProcessorAnalysisColor& color, GrProcessorAnalysisCoverage coverage, bool hasMixedSamples, const GrCaps& caps, GrClampType clampType) const { BlendFormula blendFormula; bool isLCD = coverage == GrProcessorAnalysisCoverage::kLCD; diff --git a/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp b/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp --- a/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp +++ b/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp @@ -149,16 +149,17 @@ public: return kHalf4x4_GrSLType; } else if (type == *fContext.fBool_Type) { return kBool_GrSLType; } else if (type == *fContext.fInt_Type) { return kInt_GrSLType; } printf("%s\n", SkSL::String(type.fName).c_str()); SK_ABORT("unsupported uniform type"); + SkUNREACHABLE; } void emitCode(EmitArgs& args) override { for (const auto& v : fInAndUniformVars) { if (v->fModifiers.fFlags & SkSL::Modifiers::kUniform_Flag && v->fType != *fContext.fFragmentProcessor_Type) { fUniformHandles.push_back(args.fUniformHandler->addUniform( kFragment_GrShaderFlag, @@ -563,11 +564,12 @@ std::unique_ptr<GrFragmentProcessor> GrS } std::unique_ptr<GrSkSLFP> result = GrSkSLFP::Make(d->context(), overdrawIndex, "Overdraw", SKSL_OVERDRAW_SRC, &inputs, sizeof(inputs)); return std::unique_ptr<GrFragmentProcessor>(result.release()); } } SK_ABORT("unreachable"); + SkUNREACHABLE; } #endif diff --git a/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h b/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h --- a/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h +++ b/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h @@ -36,16 +36,17 @@ public: case InputMode::kIgnore: return color; case InputMode::kModulateA: return color * input.fA; case InputMode::kModulateRGBA: 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)); } GrConstColorProcessor(const GrConstColorProcessor& src); std::unique_ptr<GrFragmentProcessor> clone() const override; const char* name() const override { return "ConstColorProcessor"; } SkPMColor4f color; diff --git a/gfx/skia/skia/src/gpu/geometry/GrShape.cpp b/gfx/skia/skia/src/gpu/geometry/GrShape.cpp --- a/gfx/skia/skia/src/gpu/geometry/GrShape.cpp +++ b/gfx/skia/skia/src/gpu/geometry/GrShape.cpp @@ -159,16 +159,17 @@ SkRect GrShape::bounds() const { return fRRectData.fRRect.getBounds(); case Type::kArc: // Could make this less conservative by looking at angles. return fArcData.fOval; case Type::kPath: return this->path().getBounds(); } SK_ABORT("Unknown shape type"); + SkUNREACHABLE; } SkRect GrShape::styledBounds() const { if (this->isEmpty() && !fStyle.hasNonDashPathEffect()) { return SkRect::MakeEmpty(); } SkRect bounds; @@ -249,16 +250,17 @@ int GrShape::unstyledKeySize() const { if (dataKeySize >= 0) { return dataKeySize; } // The key is the path ID and fill type. return 2; } } SK_ABORT("Should never get here."); + SkUNREACHABLE; } void GrShape::writeUnstyledKey(uint32_t* key) const { SkASSERT(this->unstyledKeySize()); SkDEBUGCODE(uint32_t* origKey = key;) if (fInheritedKey.count()) { memcpy(key, fInheritedKey.get(), sizeof(uint32_t) * fInheritedKey.count()); SkDEBUGCODE(key += fInheritedKey.count();) diff --git a/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp b/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp --- a/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp +++ b/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp @@ -4154,16 +4154,17 @@ GrBackendFormat GrGLCaps::getBackendForm case SkImage::kETC1_CompressionType: // if ETC2 is available default to that format if (this->isFormatTexturable(GrGLFormat::kCOMPRESSED_RGB8_ETC2)) { return GrBackendFormat::MakeGL(GR_GL_COMPRESSED_RGB8_ETC2, GR_GL_TEXTURE_2D); } 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 { const auto& info = this->getFormatInfo(format.asGLFormat()); for (int i = 0; i < info.fColorTypeInfoCount; ++i) { const auto& ctInfo = info.fColorTypeInfos[i]; if (ctInfo.fColorType == colorType) { return ctInfo.fTextureSwizzle; diff --git a/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp b/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp --- a/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp +++ b/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp @@ -63,9 +63,10 @@ bool GrGLGetGLSLGeneration(const GrGLInt if (ver >= GR_GLSL_VER(2,0)) { *generation = k330_GrGLSLGeneration; // ES 3.0 } else { *generation = k110_GrGLSLGeneration; } return true; } SK_ABORT("Unknown GL Standard"); + SkUNREACHABLE; } diff --git a/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp b/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp --- a/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp +++ b/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp @@ -191,16 +191,17 @@ static int gl_target_to_binding_index(Gr case GR_GL_TEXTURE_2D: return 0; case GR_GL_TEXTURE_RECTANGLE: return 1; case GR_GL_TEXTURE_EXTERNAL: return 2; } SK_ABORT("Unexpected GL texture target."); + SkUNREACHABLE; } GrGpuResource::UniqueID GrGLGpu::TextureUnitBindings::boundID(GrGLenum target) const { return fTargetBindings[gl_target_to_binding_index(target)].fBoundResourceID; } bool GrGLGpu::TextureUnitBindings::hasBeenModified(GrGLenum target) const { return fTargetBindings[gl_target_to_binding_index(target)].fHasBeenModified; @@ -229,39 +230,42 @@ void GrGLGpu::TextureUnitBindings::inval static GrGLenum filter_to_gl_mag_filter(GrSamplerState::Filter filter) { switch (filter) { case GrSamplerState::Filter::kNearest: return GR_GL_NEAREST; case GrSamplerState::Filter::kBilerp: return GR_GL_LINEAR; case GrSamplerState::Filter::kMipMap: return GR_GL_LINEAR; } SK_ABORT("Unknown filter"); + SkUNREACHABLE; } static GrGLenum filter_to_gl_min_filter(GrSamplerState::Filter filter) { switch (filter) { case GrSamplerState::Filter::kNearest: return GR_GL_NEAREST; case GrSamplerState::Filter::kBilerp: return GR_GL_LINEAR; 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, const GrCaps& caps) { switch (wrapMode) { case GrSamplerState::WrapMode::kClamp: return GR_GL_CLAMP_TO_EDGE; case GrSamplerState::WrapMode::kRepeat: return GR_GL_REPEAT; case GrSamplerState::WrapMode::kMirrorRepeat: return GR_GL_MIRRORED_REPEAT; case GrSamplerState::WrapMode::kClampToBorder: // May not be supported but should have been caught earlier SkASSERT(caps.clampToBorderSupport()); return GR_GL_CLAMP_TO_BORDER; } SK_ABORT("Unknown wrap mode"); + SkUNREACHABLE; } /////////////////////////////////////////////////////////////////////////////// class GrGLGpu::SamplerObjectCache { public: SamplerObjectCache(GrGLGpu* gpu) : fGpu(gpu) { fNumTextureUnits = fGpu->glCaps().shaderCaps()->maxFragmentSamplers(); @@ -1102,17 +1106,17 @@ static bool renderbuffer_storage_msaa(co GL_ALLOC_CALL(ctx.interface(), RenderbufferStorageMultisampleES2EXT(GR_GL_RENDERBUFFER, sampleCount, format, width, height)); 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())); } bool GrGLGpu::createRenderTargetObjects(const GrGLTexture::Desc& desc, int sampleCount, GrGLRenderTarget::IDs* rtIDs) { rtIDs->fMSColorRenderbufferID = 0; @@ -2270,19 +2274,20 @@ static GrGLenum gr_primitive_type_to_gl_ case GrPrimitiveType::kPoints: return GR_GL_POINTS; case GrPrimitiveType::kLines: return GR_GL_LINES; case GrPrimitiveType::kLineStrip: 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, int vertexCount, int baseVertex) { const GrGLenum glPrimType = gr_primitive_type_to_gl_mode(primitiveType); if (this->glCaps().drawArraysBaseVertexIsBroken()) { this->setupGeometry(nullptr, vertexBuffer, baseVertex, nullptr, 0, GrPrimitiveRestart::kNo); GL_CALL(DrawArrays(glPrimType, 0, vertexCount)); @@ -4001,17 +4006,18 @@ int GrGLGpu::TextureToCopyProgramIdx(GrT switch (GrSLCombinedSamplerTypeForTextureType(texture->texturePriv().textureType())) { case kTexture2DSampler_GrSLType: return 0; case kTexture2DRectSampler_GrSLType: return 1; case kTextureExternalSampler_GrSLType: return 2; default: - SK_ABORT("Unexpected samper type"); + SK_ABORT("Unexpected sampler type"); + SkUNREACHABLE; } } #ifdef SK_ENABLE_DUMP_GPU #include "src/utils/SkJSONWriter.h" void GrGLGpu::onDumpJSON(SkJSONWriter* writer) const { // We are called by the base class, which has already called beginObject(). We choose to nest // all of our caps information in a named sub-object. diff --git a/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp b/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp --- a/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp +++ b/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp @@ -192,16 +192,17 @@ inline bool init_path_object_for_general /* * For now paths only natively support winding and even odd fill types */ static GrPathRendering::FillType convert_skpath_filltype(SkPath::FillType fill) { switch (fill) { default: SK_ABORT("Incomplete Switch\n"); + SkUNREACHABLE; case SkPath::kWinding_FillType: case SkPath::kInverseWinding_FillType: return GrPathRendering::kWinding_FillType; case SkPath::kEvenOdd_FillType: case SkPath::kInverseEvenOdd_FillType: return GrPathRendering::kEvenOdd_FillType; } } diff --git a/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp b/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp --- a/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp +++ b/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp @@ -20,30 +20,33 @@ GrTextureType GrGLTexture::TextureTypeFr case GR_GL_TEXTURE_2D: return GrTextureType::k2D; case GR_GL_TEXTURE_RECTANGLE: return GrTextureType::kRectangle; case GR_GL_TEXTURE_EXTERNAL: return GrTextureType::kExternal; } SK_ABORT("Unexpected texture target"); + SkUNREACHABLE; } static inline GrGLenum target_from_texture_type(GrTextureType type) { switch (type) { case GrTextureType::k2D: return GR_GL_TEXTURE_2D; case GrTextureType::kRectangle: return GR_GL_TEXTURE_RECTANGLE; case GrTextureType::kExternal: 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. GrGLTexture::GrGLTexture(GrGLGpu* gpu, SkBudgeted budgeted, const Desc& desc, GrMipMapsStatus mipMapsStatus) : GrSurface(gpu, desc.fSize, desc.fConfig, GrProtected::kNo) , INHERITED(gpu, desc.fSize, desc.fConfig, GrProtected::kNo, TextureTypeFromTarget(desc.fTarget), mipMapsStatus) diff --git a/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp b/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp --- a/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp +++ b/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp @@ -75,16 +75,17 @@ static AttribLayout attrib_layout(GrVert case kUint_GrVertexAttribType: return {false, 1, GR_GL_UNSIGNED_INT}; case kUShort_norm_GrVertexAttribType: return {true, 1, GR_GL_UNSIGNED_SHORT}; case kUShort4_norm_GrVertexAttribType: return {true, 4, GR_GL_UNSIGNED_SHORT}; } SK_ABORT("Unknown vertex attrib type"); + SkUNREACHABLE; }; void GrGLAttribArrayState::set(GrGLGpu* gpu, int index, const GrBuffer* vertexBuffer, GrVertexAttribType cpuType, GrSLType gpuType, GrGLsizei stride, diff --git a/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp b/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp --- a/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp +++ b/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp @@ -93,9 +93,10 @@ const char* GrGLSLTypeString(GrSLType t) case kUByte4_GrSLType: return "ubyte4"; case kTexture2D_GrSLType: return "texture2D"; case kSampler_GrSLType: return "sampler"; } SK_ABORT("Unknown shader var type."); + SkUNREACHABLE; } diff --git a/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp b/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp --- a/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp +++ b/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp @@ -30,16 +30,17 @@ static bool use_flat_interpolation(GrGLS SkASSERT(!shaderCaps.preferFlatInterpolation() || shaderCaps.flatInterpolationSupport()); return shaderCaps.preferFlatInterpolation(); case Interpolation::kMustBeFlat: SkASSERT(shaderCaps.flatInterpolationSupport()); return true; } SK_ABORT("Invalid interpolation"); + SkUNREACHABLE; } void GrGLSLVaryingHandler::addVarying(const char* name, GrGLSLVarying* varying, Interpolation interpolation) { SkASSERT(GrSLTypeIsFloatType(varying->type()) || Interpolation::kMustBeFlat == interpolation); bool willUseGeoShader = fProgramBuilder->primitiveProcessor().willUseGeoShader(); VaryingInfo& v = fVaryings.push_back(); diff --git a/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp b/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp --- a/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp +++ b/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp @@ -46,26 +46,28 @@ void GrGLSLVertexBuilder::onFinalize() { static const char* input_type_name(GrGLSLGeometryBuilder::InputType in) { using InputType = GrGLSLGeometryBuilder::InputType; switch (in) { case InputType::kPoints: return "points"; case InputType::kLines: return "lines"; case InputType::kTriangles: return "triangles"; } SK_ABORT("invalid input type"); + SkUNREACHABLE; } static const char* output_type_name(GrGLSLGeometryBuilder::OutputType out) { using OutputType = GrGLSLGeometryBuilder::OutputType; switch (out) { case OutputType::kPoints: return "points"; case OutputType::kLineStrip: return "line_strip"; case OutputType::kTriangleStrip: return "triangle_strip"; } SK_ABORT("invalid output type"); + SkUNREACHABLE; } void GrGLSLGeometryBuilder::configure(InputType inputType, OutputType outputType, int maxVertices, int numInvocations) { SkASSERT(!this->isConfigured()); fNumInvocations = numInvocations; this->addLayoutQualifier(input_type_name(inputType), kIn_InterfaceQualifier); this->addLayoutQualifier(SkStringPrintf("invocations = %i", numInvocations).c_str(), diff --git a/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm b/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm --- a/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm +++ b/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm @@ -501,16 +501,17 @@ size_t GrMtlCaps::GetFormatIndex(MTLPixe static_assert(SK_ARRAY_COUNT(kMtlFormats) == GrMtlCaps::kNumMtlFormats, "Size of kMtlFormats array must match static value in header"); for (size_t i = 0; i < GrMtlCaps::kNumMtlFormats; ++i) { if (kMtlFormats[i] == pixelFormat) { return i; } } SK_ABORT("Invalid MTLPixelFormat"); + SkUNREACHABLE; } void GrMtlCaps::initFormatTable() { FormatInfo* info; // Format: R8Unorm { info = &fFormatTable[GetFormatIndex(MTLPixelFormatR8Unorm)]; @@ -1006,16 +1007,17 @@ GrBackendFormat GrMtlCaps::getBackendFor case SkImage::kETC1_CompressionType: #ifdef SK_BUILD_FOR_MAC return {}; #else return GrBackendFormat::MakeMtl(MTLPixelFormatETC2_RGB8); #endif } SK_ABORT("Invalid compression type"); + SkUNREACHABLE; } GrSwizzle GrMtlCaps::getTextureSwizzle(const GrBackendFormat& format, GrColorType colorType) const { MTLPixelFormat mtlFormat = GrBackendFormatAsMTLPixelFormat(format); SkASSERT(mtlFormat != MTLPixelFormatInvalid); const auto& info = this->getFormatInfo(mtlFormat); for (int i = 0; i < info.fColorTypeInfoCount; ++i) { const auto& ctInfo = info.fColorTypeInfos[i]; diff --git a/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm b/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm --- a/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm +++ b/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm @@ -150,16 +150,17 @@ static inline MTLVertexFormat attribute_ return MTLVertexFormatUShortNormalized; } else { return MTLVertexFormatInvalid; } case kUShort4_norm_GrVertexAttribType: return MTLVertexFormatUShort4Normalized; } SK_ABORT("Unknown vertex attribute type"); + SkUNREACHABLE; } static MTLVertexDescriptor* create_vertex_descriptor(const GrPrimitiveProcessor& primProc) { uint32_t vertexBinding = 0, instanceBinding = 0; int nextBinding = GrMtlUniformHandler::kLastUniformBinding + 1; if (primProc.hasVertexAttributes()) { vertexBinding = nextBinding++; @@ -271,16 +272,17 @@ static MTLBlendFactor blend_coeff_to_mtl } else { return MTLBlendFactorZero; } case kIllegal_GrBlendCoeff: return MTLBlendFactorZero; } SK_ABORT("Unknown blend coefficient"); + SkUNREACHABLE; } static MTLBlendOperation blend_equation_to_mtl_blend_op(GrBlendEquation equation) { static const MTLBlendOperation gTable[] = { MTLBlendOperationAdd, // kAdd_GrBlendEquation MTLBlendOperationSubtract, // kSubtract_GrBlendEquation MTLBlendOperationReverseSubtract, // kReverseSubtract_GrBlendEquation }; diff --git a/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm b/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm --- a/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm +++ b/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm @@ -33,16 +33,17 @@ static inline MTLSamplerAddressMode wrap } else #endif { SkASSERT(false); return MTLSamplerAddressModeClampToEdge; } } SK_ABORT("Unknown wrap mode."); + SkUNREACHABLE; } GrMtlSampler* GrMtlSampler::Create(const GrMtlGpu* gpu, const GrSamplerState& samplerState) { static MTLSamplerMinMagFilter mtlMinMagFilterModes[] = { MTLSamplerMinMagFilterNearest, MTLSamplerMinMagFilterLinear, MTLSamplerMinMagFilterLinear }; diff --git a/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm b/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm --- a/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm +++ b/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm @@ -85,16 +85,17 @@ static uint32_t grsltype_to_alignment_ma case kTexture2DSampler_GrSLType: case kTextureExternalSampler_GrSLType: case kTexture2DRectSampler_GrSLType: case kSampler_GrSLType: case kTexture2D_GrSLType: break; } SK_ABORT("Unexpected type"); + SkUNREACHABLE; } /** Returns the size in bytes taken up in Metal buffers for GrSLTypes. */ static inline uint32_t grsltype_to_mtl_size(GrSLType type) { switch(type) { case kByte_GrSLType: return sizeof(int8_t); case kByte2_GrSLType: @@ -167,16 +168,17 @@ static inline uint32_t grsltype_to_mtl_s case kTexture2DSampler_GrSLType: case kTextureExternalSampler_GrSLType: case kTexture2DRectSampler_GrSLType: case kSampler_GrSLType: case kTexture2D_GrSLType: break; } SK_ABORT("Unexpected type"); + SkUNREACHABLE; } // Given the current offset into the ubo, calculate the offset for the uniform we're trying to add // taking into consideration all alignment requirements. The uniformOffset is set to the offset for // the new uniform, and currentOffset is updated to be the offset to the end of the new uniform. static void get_ubo_aligned_offset(uint32_t* uniformOffset, uint32_t* currentOffset, uint32_t* maxAlignment, diff --git a/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm b/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm --- a/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm +++ b/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm @@ -107,16 +107,17 @@ bool GrPixelConfigToMTLFormat(GrPixelCon case kRGBA_16161616_GrPixelConfig: *format = MTLPixelFormatRGBA16Unorm; return true; case kRG_half_GrPixelConfig: *format = MTLPixelFormatRG16Float; return true; } SK_ABORT("Unexpected config"); + SkUNREACHABLE; } MTLTextureDescriptor* GrGetMTLTextureDescriptor(id<MTLTexture> mtlTexture) { MTLTextureDescriptor* texDesc = [[MTLTextureDescriptor alloc] init]; texDesc.textureType = mtlTexture.textureType; texDesc.pixelFormat = mtlTexture.pixelFormat; texDesc.width = mtlTexture.width; texDesc.height = mtlTexture.height; diff --git a/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp b/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp --- a/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp +++ b/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp @@ -605,16 +605,17 @@ static uint32_t seed_vertices(GrPrimitiv case GrPrimitiveType::kLines: case GrPrimitiveType::kLineStrip: return 2; case GrPrimitiveType::kPath: SkASSERT(0); return 0; } SK_ABORT("Incomplete switch\n"); + SkUNREACHABLE; } static uint32_t primitive_vertices(GrPrimitiveType type) { switch (type) { case GrPrimitiveType::kTriangles: return 3; case GrPrimitiveType::kLines: return 2; @@ -622,16 +623,17 @@ static uint32_t primitive_vertices(GrPri case GrPrimitiveType::kPoints: case GrPrimitiveType::kLineStrip: return 1; case GrPrimitiveType::kPath: SkASSERT(0); return 0; } SK_ABORT("Incomplete switch\n"); + SkUNREACHABLE; } static SkPoint random_point(SkRandom* random, SkScalar min, SkScalar max) { SkPoint p; p.fX = random->nextRangeScalar(min, max); p.fY = random->nextRangeScalar(min, max); return p; } diff --git a/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp b/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp --- a/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp +++ b/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp @@ -818,9 +818,10 @@ static bool can_use_hw_derivatives_with_ if (!can_use_hw_derivatives_with_coverage(devScale, rrect.radii(corner))) { return false; } } return true; } } SK_ABORT("Invalid round rect type."); + SkUNREACHABLE; } diff --git a/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp b/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp --- a/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp +++ b/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp @@ -2278,39 +2278,42 @@ static int rrect_type_to_vert_count(RRec switch (type) { case kFill_RRectType: case kStroke_RRectType: return kVertsPerStandardRRect; case kOverstroke_RRectType: return kVertsPerOverstrokeRRect; } SK_ABORT("Invalid type"); + SkUNREACHABLE; } static int rrect_type_to_index_count(RRectType type) { switch (type) { case kFill_RRectType: return kIndicesPerFillRRect; case kStroke_RRectType: return kIndicesPerStrokeRRect; case kOverstroke_RRectType: return kIndicesPerOverstrokeRRect; } SK_ABORT("Invalid type"); + SkUNREACHABLE; } static const uint16_t* rrect_type_to_indices(RRectType type) { switch (type) { case kFill_RRectType: case kStroke_RRectType: return gStandardRRectIndices; case kOverstroke_RRectType: return gOverstrokeRRectIndices; } SK_ABORT("Invalid type"); + SkUNREACHABLE; } /////////////////////////////////////////////////////////////////////////////////////////////////// // For distance computations in the interior of filled rrects we: // // add a interior degenerate (point or line) rect // each vertex of that rect gets -outerRad as its radius diff --git a/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp b/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp --- a/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp +++ b/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp @@ -150,39 +150,42 @@ static int rrect_type_to_vert_count(RRec case kFill_RRectType: return kVertsPerFillRRect; case kStroke_RRectType: return kVertsPerStrokeRRect; case kOverstroke_RRectType: return kVertsPerOverstrokeRRect; } SK_ABORT("Invalid type"); + SkUNREACHABLE; } static int rrect_type_to_index_count(RRectType type) { switch (type) { case kFill_RRectType: return kIndicesPerFillRRect; case kStroke_RRectType: return kIndicesPerStrokeRRect; case kOverstroke_RRectType: return kIndicesPerOverstrokeRRect; } SK_ABORT("Invalid type"); + SkUNREACHABLE; } static const uint16_t* rrect_type_to_indices(RRectType type) { switch (type) { case kFill_RRectType: case kStroke_RRectType: return gRRectIndices + 6*4; case kOverstroke_RRectType: return gRRectIndices; } SK_ABORT("Invalid type"); + SkUNREACHABLE; } /////////////////////////////////////////////////////////////////////////////// namespace { class ShadowCircularRRectOp final : public GrMeshDrawOp { public: DEFINE_OP_CLASS_ID diff --git a/gfx/skia/skia/src/gpu/text/GrTextBlob.h b/gfx/skia/skia/src/gpu/text/GrTextBlob.h --- a/gfx/skia/skia/src/gpu/text/GrTextBlob.h +++ b/gfx/skia/skia/src/gpu/text/GrTextBlob.h @@ -120,16 +120,17 @@ public: } void operator delete(void* p) { ::operator delete(p); } void* operator new(size_t) { SK_ABORT("All blobs are created by placement new."); + SkUNREACHABLE; } void* operator new(size_t, void* p) { return p; } bool hasDistanceField() const { return SkToBool(fTextType & kHasDistanceField_TextType); } bool hasBitmap() const { return SkToBool(fTextType & kHasBitmap_TextType); } void setHasDistanceField() { fTextType |= kHasDistanceField_TextType; } void setHasBitmap() { fTextType |= kHasBitmap_TextType; } diff --git a/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp b/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp --- a/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp +++ b/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp @@ -279,9 +279,10 @@ bool GrTextBlob::VertexRegenerator::rege // set use tokens for all of the glyphs in our subrun. This is only valid if we // have a valid atlas generation fFullAtlasManager->setUseTokenBulk(*fSubRun->bulkUseToken(), fUploadTarget->tokenTracker()->nextDrawToken(), fSubRun->maskFormat()); return true; } SK_ABORT("Should not get here"); + SkUNREACHABLE; } diff --git a/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp b/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp --- a/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp +++ b/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp @@ -103,16 +103,17 @@ static FormatCompatibilityClass format_c case VK_FORMAT_R8G8B8_UNORM: return FormatCompatibilityClass::k24_3_1; case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: return FormatCompatibilityClass::kETC2_RGB_8_16; default: SK_ABORT("Unsupported VkFormat"); + SkUNREACHABLE; } } bool GrVkCaps::canCopyImage(VkFormat dstFormat, int dstSampleCnt, bool dstHasYcbcr, VkFormat srcFormat, int srcSampleCnt, bool srcHasYcbcr) const { if ((dstSampleCnt > 1 || srcSampleCnt > 1) && dstSampleCnt != srcSampleCnt) { return false; } @@ -1651,16 +1652,17 @@ GrBackendFormat GrVkCaps::onGetDefaultBa GrBackendFormat GrVkCaps::getBackendFormatFromCompressionType( SkImage::CompressionType compressionType) const { switch (compressionType) { case SkImage::kETC1_CompressionType: return GrBackendFormat::MakeVk(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK); } SK_ABORT("Invalid compression type"); + SkUNREACHABLE; } GrSwizzle GrVkCaps::getTextureSwizzle(const GrBackendFormat& format, GrColorType colorType) const { VkFormat vkFormat; SkAssertResult(format.asVkFormat(&vkFormat)); const auto& info = this->getFormatInfo(vkFormat); for (int i = 0; i < info.fColorTypeInfoCount; ++i) { const auto& ctInfo = info.fColorTypeInfos[i]; diff --git a/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp b/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp --- a/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp +++ b/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp @@ -23,16 +23,17 @@ static BufferUsage get_buffer_usage(GrVk case GrVkBuffer::kUniform_Type: SkASSERT(dynamic); return BufferUsage::kCpuWritesGpuReads; case GrVkBuffer::kCopyRead_Type: // fall through case GrVkBuffer::kCopyWrite_Type: return BufferUsage::kCpuOnly; } SK_ABORT("Invalid GrVkBuffer::Type"); + SkUNREACHABLE; } bool GrVkMemory::AllocAndBindBufferMemory(const GrVkGpu* gpu, VkBuffer buffer, GrVkBuffer::Type type, bool dynamic, GrVkAlloc* alloc) { GrVkMemoryAllocator* allocator = gpu->memoryAllocator(); diff --git a/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp b/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp --- a/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp +++ b/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp @@ -75,16 +75,17 @@ static inline VkFormat attrib_type_to_vk case kUint_GrVertexAttribType: return VK_FORMAT_R32_UINT; case kUShort_norm_GrVertexAttribType: return VK_FORMAT_R16_UNORM; case kUShort4_norm_GrVertexAttribType: return VK_FORMAT_R16G16B16A16_UNORM; } SK_ABORT("Unknown vertex attrib type"); + SkUNREACHABLE; } static void setup_vertex_input_state(const GrPrimitiveProcessor& primProc, VkPipelineVertexInputStateCreateInfo* vertexInputInfo, SkSTArray<2, VkVertexInputBindingDescription, true>* bindingDescs, VkVertexInputAttributeDescription* attributeDesc) { uint32_t vertexBinding = 0, instanceBinding = 0; @@ -157,18 +158,20 @@ static VkPrimitiveTopology gr_primitive_ case GrPrimitiveType::kPoints: return VK_PRIMITIVE_TOPOLOGY_POINT_LIST; case GrPrimitiveType::kLines: return VK_PRIMITIVE_TOPOLOGY_LINE_LIST; case GrPrimitiveType::kLineStrip: 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, VkPipelineInputAssemblyStateCreateInfo* inputAssemblyInfo) { memset(inputAssemblyInfo, 0, sizeof(VkPipelineInputAssemblyStateCreateInfo)); inputAssemblyInfo->sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; inputAssemblyInfo->pNext = nullptr; inputAssemblyInfo->flags = 0; diff --git a/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp b/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp --- a/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp +++ b/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp @@ -18,16 +18,17 @@ static inline VkSamplerAddressMode wrap_ case GrSamplerState::WrapMode::kRepeat: return VK_SAMPLER_ADDRESS_MODE_REPEAT; case GrSamplerState::WrapMode::kMirrorRepeat: return VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT; case GrSamplerState::WrapMode::kClampToBorder: return VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER; } SK_ABORT("Unknown wrap mode."); + SkUNREACHABLE; } GrVkSampler* GrVkSampler::Create(GrVkGpu* gpu, const GrSamplerState& samplerState, const GrVkYcbcrConversionInfo& ycbcrInfo) { static VkFilter vkMinFilterModes[] = { VK_FILTER_NEAREST, VK_FILTER_LINEAR, VK_FILTER_LINEAR diff --git a/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h b/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h --- a/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h +++ b/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h @@ -29,16 +29,17 @@ private: const SkString& dumpName) const override; void onMap() override { this->GrGpuBuffer::fMapPtr = this->vkMap(this->getVkGpu()); } void onUnmap() override { this->vkUnmap(this->getVkGpu()); } bool onUpdateData(const void* src, size_t srcSizeInBytes) override { SK_ABORT("Not implemented for transfer buffers."); + SkUNREACHABLE; } GrVkGpu* getVkGpu() const { SkASSERT(!this->wasDestroyed()); return reinterpret_cast<GrVkGpu*>(this->getGpu()); } typedef GrGpuBuffer INHERITED; diff --git a/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp b/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp --- a/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp +++ b/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp @@ -84,16 +84,17 @@ static uint32_t grsltype_to_alignment_ma case kTexture2DSampler_GrSLType: case kTextureExternalSampler_GrSLType: case kTexture2DRectSampler_GrSLType: case kSampler_GrSLType: case kTexture2D_GrSLType: break; } SK_ABORT("Unexpected type"); + SkUNREACHABLE; } /** Returns the size in bytes taken up in vulkanbuffers for GrSLTypes. */ static inline uint32_t grsltype_to_vk_size(GrSLType type) { switch(type) { case kByte_GrSLType: return sizeof(int8_t); case kByte2_GrSLType: @@ -167,16 +168,17 @@ static inline uint32_t grsltype_to_vk_si case kTexture2DSampler_GrSLType: case kTextureExternalSampler_GrSLType: case kTexture2DRectSampler_GrSLType: case kSampler_GrSLType: case kTexture2D_GrSLType: break; } SK_ABORT("Unexpected type"); + SkUNREACHABLE; } // Given the current offset into the ubo, calculate the offset for the uniform we're trying to add // taking into consideration all alignment requirements. The uniformOffset is set to the offset for // the new uniform, and currentOffset is updated to be the offset to the end of the new uniform. static void get_ubo_aligned_offset(uint32_t* uniformOffset, uint32_t* currentOffset, diff --git a/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp b/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp --- a/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp +++ b/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp @@ -69,16 +69,17 @@ static inline int grsltype_to_location_s case kByte_GrSLType: return 1; case kUint_GrSLType: // fall through case kUShort_GrSLType: case kUByte_GrSLType: return 1; } SK_ABORT("Unexpected type"); + SkUNREACHABLE; } static void finalize_helper(GrVkVaryingHandler::VarArray& vars) { int locationIndex = 0; for (int i = 0; i < vars.count(); ++i) { GrShaderVar& var = vars[i]; SkString location; location.appendf("location = %d", locationIndex); diff --git a/gfx/skia/skia/src/pdf/SkPDFTag.cpp b/gfx/skia/skia/src/pdf/SkPDFTag.cpp --- a/gfx/skia/skia/src/pdf/SkPDFTag.cpp +++ b/gfx/skia/skia/src/pdf/SkPDFTag.cpp @@ -59,16 +59,17 @@ static const char* tag_name_from_type(Sk M(WT); M(WP); M(Figure); M(Formula); M(Form); #undef M } SK_ABORT("bad tag"); + SkUNREACHABLE; } struct SkPDFTagNode { SkPDFTagNode* fChildren = nullptr; size_t fChildCount = 0; struct MarkedContentInfo { unsigned fPageIndex; int fMarkId; diff --git a/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp b/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp --- a/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp +++ b/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp @@ -168,28 +168,32 @@ public: SkFontMgr_FCI(sk_sp<SkFontConfigInterface> fci) : fFCI(std::move(fci)) , fCache(kMaxSize) {} 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[], const SkFontStyle& requestedStyle) const override { SkAutoMutexExclusive ama(fMutex); SkFontConfigInterface::FontIdentity identity; @@ -210,20 +214,22 @@ protected: } return face.release(); } SkTypeface* onMatchFamilyStyleCharacter(const char familyName[], const SkFontStyle&, 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 { return this->onMakeFromStreamIndex(SkMemoryStream::Make(std::move(data)), ttcIndex); } sk_sp<SkTypeface> onMakeFromStreamIndex(std::unique_ptr<SkStreamAsset> stream, int ttcIndex) const override { diff --git a/gfx/skia/skia/src/shaders/SkImageShader.cpp b/gfx/skia/skia/src/shaders/SkImageShader.cpp --- a/gfx/skia/skia/src/shaders/SkImageShader.cpp +++ b/gfx/skia/skia/src/shaders/SkImageShader.cpp @@ -178,16 +178,17 @@ static GrSamplerState::WrapMode tile_mod case SkTileMode::kRepeat: return GrSamplerState::WrapMode::kRepeat; case SkTileMode::kMirror: return GrSamplerState::WrapMode::kMirrorRepeat; case SkTileMode::kDecal: return GrSamplerState::WrapMode::kClampToBorder; } SK_ABORT("Unknown tile mode."); + SkUNREACHABLE; } std::unique_ptr<GrFragmentProcessor> SkImageShader::asFragmentProcessor( const GrFPArgs& args) const { const auto lm = this->totalLocalMatrix(args.fPreLocalMatrix, args.fPostLocalMatrix); SkMatrix lmInverse; if (!lm->invert(&lmInverse)) { return nullptr; diff --git a/gfx/skia/skia/src/utils/SkShadowUtils.cpp b/gfx/skia/skia/src/utils/SkShadowUtils.cpp --- a/gfx/skia/skia/src/utils/SkShadowUtils.cpp +++ b/gfx/skia/skia/src/utils/SkShadowUtils.cpp @@ -144,16 +144,17 @@ struct SpotVerticesFactory { // if the offsets don't match. if (fOffset == that.fOffset) { translate->set(0, 0); return true; } return false; } SK_ABORT("Uninitialized occluder type?"); + SkUNREACHABLE; } sk_sp<SkVertices> makeVertices(const SkPath& path, const SkMatrix& ctm, SkVector* translate) const { bool transparent = OccluderType::kTransparent == fOccluderType; SkPoint3 zParams = SkPoint3::Make(0, 0, fOccluderHeight); if (ctm.hasPerspective() || OccluderType::kOpaquePartialUmbra == fOccluderType) { translate->set(0, 0); diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/number_rounding.cpp --- a/intl/icu/source/i18n/number_rounding.cpp +++ b/intl/icu/source/i18n/number_rounding.cpp @@ -278,27 +278,29 @@ Precision IncrementPrecision::withMinFra } FractionPrecision Precision::constructFraction(int32_t minFrac, int32_t maxFrac) { FractionSignificantSettings settings; settings.fMinFrac = static_cast<digits_t>(minFrac); 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_}; } Precision Precision::constructSignificant(int32_t minSig, int32_t maxSig) { FractionSignificantSettings settings; settings.fMinFrac = -1; 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_}; } Precision Precision::constructFractionSignificant( const FractionPrecision &base, diff --git a/third_party/libwebrtc/api/adaptation/resource.cc b/third_party/libwebrtc/api/adaptation/resource.cc --- a/third_party/libwebrtc/api/adaptation/resource.cc +++ b/third_party/libwebrtc/api/adaptation/resource.cc @@ -4,25 +4,29 @@ * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "api/adaptation/resource.h" +#include "rtc_base/checks.h" namespace webrtc { const char* ResourceUsageStateToString(ResourceUsageState usage_state) { switch (usage_state) { case ResourceUsageState::kOveruse: return "kOveruse"; case ResourceUsageState::kUnderuse: return "kUnderuse"; + default: + RTC_NOTREACHED(); + return ""; } } ResourceListener::~ResourceListener() {} Resource::Resource() {} Resource::~Resource() {} diff --git a/third_party/libwebrtc/api/rtp_parameters.cc b/third_party/libwebrtc/api/rtp_parameters.cc --- a/third_party/libwebrtc/api/rtp_parameters.cc +++ b/third_party/libwebrtc/api/rtp_parameters.cc @@ -24,16 +24,19 @@ const char* DegradationPreferenceToStrin case DegradationPreference::DISABLED: return "disabled"; case DegradationPreference::MAINTAIN_FRAMERATE: return "maintain-framerate"; case DegradationPreference::MAINTAIN_RESOLUTION: return "maintain-resolution"; case DegradationPreference::BALANCED: return "balanced"; + default: + RTC_NOTREACHED(); + return ""; } } const double kDefaultBitratePriority = 1.0; RtcpFeedback::RtcpFeedback() = default; RtcpFeedback::RtcpFeedback(RtcpFeedbackType type) : type(type) {} RtcpFeedback::RtcpFeedback(RtcpFeedbackType type, diff --git a/third_party/libwebrtc/api/video_codecs/video_codec.cc b/third_party/libwebrtc/api/video_codecs/video_codec.cc --- a/third_party/libwebrtc/api/video_codecs/video_codec.cc +++ b/third_party/libwebrtc/api/video_codecs/video_codec.cc @@ -114,16 +114,19 @@ const char* CodecTypeToPayloadString(Vid case kVideoCodecAV1: return kPayloadNameAv1; case kVideoCodecH264: return kPayloadNameH264; case kVideoCodecMultiplex: return kPayloadNameMultiplex; case kVideoCodecGeneric: return kPayloadNameGeneric; + default: + RTC_NOTREACHED(); + return ""; } } VideoCodecType PayloadStringToCodecType(const std::string& name) { if (absl::EqualsIgnoreCase(name, kPayloadNameVp8)) return kVideoCodecVP8; if (absl::EqualsIgnoreCase(name, kPayloadNameVp9)) return kVideoCodecVP9; diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc --- a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc +++ b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc @@ -156,16 +156,19 @@ class VideoEncoderSoftwareFallbackWrappe << "Trying to access encoder in uninitialized fallback wrapper."; // Return main encoder to preserve previous behavior. ABSL_FALLTHROUGH_INTENDED; case EncoderState::kMainEncoderUsed: return encoder_.get(); case EncoderState::kFallbackDueToFailure: case EncoderState::kForcedFallback: return fallback_encoder_.get(); + default: + RTC_NOTREACHED(); + return nullptr; } } // Updates encoder with last observed parameters, such as callbacks, rates, // etc. void PrimeEncoder(VideoEncoder* encoder) const; // Settings used in the last InitEncode call and used if a dynamic fallback to @@ -334,16 +337,19 @@ int32_t VideoEncoderSoftwareFallbackWrap case EncoderState::kUninitialized: return WEBRTC_VIDEO_CODEC_ERROR; case EncoderState::kMainEncoderUsed: { return EncodeWithMainEncoder(frame, frame_types); } 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( const VideoFrame& frame, const std::vector<VideoFrameType>* frame_types) { int32_t ret = encoder_->Encode(frame, frame_types); // If requested, try a software fallback. bool fallback_requested = (ret == WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE); diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc --- a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc +++ b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc @@ -156,16 +156,19 @@ const char* Adaptation::StatusToString(A case Adaptation::Status::kAwaitingPreviousAdaptation: return "kAwaitingPreviousAdaptation"; case Status::kInsufficientInput: return "kInsufficientInput"; case Status::kAdaptationDisabled: return "kAdaptationDisabled"; case Status::kRejectedByConstraint: return "kRejectedByConstraint"; + default: + RTC_NOTREACHED(); + return ""; } } Adaptation::Adaptation(int validation_id, VideoSourceRestrictions restrictions, VideoAdaptationCounters counters, VideoStreamInputState input_state) : validation_id_(validation_id), @@ -375,16 +378,19 @@ VideoStreamAdapter::RestrictionsOrState return IncreaseResolution(input_state, current_restrictions_); } case DegradationPreference::MAINTAIN_RESOLUTION: { // Scale up framerate. return IncreaseFramerate(input_state, current_restrictions_); } case DegradationPreference::DISABLED: return Adaptation::Status::kAdaptationDisabled; + default: + RTC_NOTREACHED(); + return Adaptation::Status::kAdaptationDisabled; } } Adaptation VideoStreamAdapter::GetAdaptationDown() { RTC_DCHECK_RUN_ON(&sequence_checker_); VideoStreamInputState input_state = input_state_provider_->InputState(); ++adaptation_validation_id_; RestrictionsOrState restrictions_or_state = @@ -454,16 +460,19 @@ VideoStreamAdapter::GetAdaptationDownSte case DegradationPreference::MAINTAIN_FRAMERATE: { return DecreaseResolution(input_state, current_restrictions); } case DegradationPreference::MAINTAIN_RESOLUTION: { return DecreaseFramerate(input_state, current_restrictions); } case DegradationPreference::DISABLED: return Adaptation::Status::kAdaptationDisabled; + default: + RTC_NOTREACHED(); + return Adaptation::Status::kAdaptationDisabled; } } VideoStreamAdapter::RestrictionsOrState VideoStreamAdapter::DecreaseResolution( const VideoStreamInputState& input_state, const RestrictionsWithCounters& current_restrictions) { int target_pixels = GetLowerResolutionThan(input_state.frame_size_pixels().value()); @@ -594,16 +603,18 @@ Adaptation VideoStreamAdapter::GetAdaptD case DegradationPreference::MAINTAIN_FRAMERATE: return GetAdaptationDown(); case DegradationPreference::BALANCED: { return RestrictionsOrStateToAdaptation( GetAdaptDownResolutionStepForBalanced(input_state), input_state); } default: RTC_NOTREACHED(); + return RestrictionsOrStateToAdaptation( + Adaptation::Status::kAdaptationDisabled, input_state); } } VideoStreamAdapter::RestrictionsOrState VideoStreamAdapter::GetAdaptDownResolutionStepForBalanced( const VideoStreamInputState& input_state) const { // Adapt twice if the first adaptation did not decrease resolution. auto first_step = GetAdaptationDownStep(input_state, current_restrictions_); diff --git a/third_party/libwebrtc/call/simulated_network.cc b/third_party/libwebrtc/call/simulated_network.cc --- a/third_party/libwebrtc/call/simulated_network.cc +++ b/third_party/libwebrtc/call/simulated_network.cc @@ -72,16 +72,18 @@ bool CoDelSimulation::DropDequeuedPacket if (queue_size - packet_size < kMaxPacketSize) state_ = kPending; last_drop_at_ = next_drop_at; ++drop_count_; return true; } return false; } + RTC_NOTREACHED(); + return false; } SimulatedNetwork::SimulatedNetwork(Config config, uint64_t random_seed) : random_(random_seed), bursting_(false) { SetConfig(config); } SimulatedNetwork::~SimulatedNetwork() = default; diff --git a/third_party/libwebrtc/call/video_send_stream.cc b/third_party/libwebrtc/call/video_send_stream.cc --- a/third_party/libwebrtc/call/video_send_stream.cc +++ b/third_party/libwebrtc/call/video_send_stream.cc @@ -22,16 +22,19 @@ namespace { const char* StreamTypeToString(VideoSendStream::StreamStats::StreamType type) { switch (type) { case VideoSendStream::StreamStats::StreamType::kMedia: return "media"; case VideoSendStream::StreamStats::StreamType::kRtx: return "rtx"; case VideoSendStream::StreamStats::StreamType::kFlexfec: return "flexfec"; + default: + RTC_NOTREACHED(); + return ""; } } } // namespace VideoSendStream::StreamStats::StreamStats() = default; VideoSendStream::StreamStats::~StreamStats() = default; diff --git a/third_party/libwebrtc/modules/audio_coding/neteq/decision_logic.cc b/third_party/libwebrtc/modules/audio_coding/neteq/decision_logic.cc --- a/third_party/libwebrtc/modules/audio_coding/neteq/decision_logic.cc +++ b/third_party/libwebrtc/modules/audio_coding/neteq/decision_logic.cc @@ -347,17 +347,17 @@ NetEq::Operation DecisionLogic::FuturePa return NetEq::Operation::kNormal; } // If previous was comfort noise, then no merge is needed. if (prev_mode == NetEq::Mode::kRfc3389Cng || 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 = (delay_manager_->TargetLevel() * packet_length_samples_) >> 8; const bool generated_enough_noise = static_cast<uint32_t>(generated_noise_samples + target_timestamp) >= available_timestamp; diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc --- a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc +++ b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc @@ -108,16 +108,19 @@ GainControl::Mode Agc1ConfigModeToInterf using Agc1Config = AudioProcessing::Config::GainController1; switch (mode) { case Agc1Config::kAdaptiveAnalog: return GainControl::kAdaptiveAnalog; case Agc1Config::kAdaptiveDigital: return GainControl::kAdaptiveDigital; case Agc1Config::kFixedDigital: return GainControl::kFixedDigital; + default: + RTC_NOTREACHED(); + return GainControl::kAdaptiveAnalog; } } // Maximum lengths that frame of samples being passed from the render side to // the capture side can have (does not apply to AEC3). static const size_t kMaxAllowedValuesOfSamplesPerBand = 160; static const size_t kMaxAllowedValuesOfSamplesPerFrame = 480; @@ -1847,16 +1850,17 @@ void AudioProcessingImpl::InitializeNois case NoiseSuppresionConfig::kModerate: return NsConfig::SuppressionLevel::k12dB; case NoiseSuppresionConfig::kHigh: return NsConfig::SuppressionLevel::k18dB; case NoiseSuppresionConfig::kVeryHigh: return NsConfig::SuppressionLevel::k21dB; default: RTC_NOTREACHED(); + return NsConfig::SuppressionLevel::k6dB; } }; NsConfig cfg; cfg.target_level = map_level(config_.noise_suppression.level); submodules_.noise_suppressor = std::make_unique<NoiseSuppressor>( cfg, proc_sample_rate_hz(), num_proc_channels()); } diff --git a/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc b/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc --- a/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc +++ b/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc @@ -22,38 +22,47 @@ std::string NoiseSuppressionLevelToStrin case AudioProcessing::Config::NoiseSuppression::Level::kLow: return "Low"; case AudioProcessing::Config::NoiseSuppression::Level::kModerate: return "Moderate"; case AudioProcessing::Config::NoiseSuppression::Level::kHigh: return "High"; case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh: return "VeryHigh"; + default: + RTC_NOTREACHED(); + return ""; } } std::string GainController1ModeToString( const AudioProcessing::Config::GainController1::Mode& mode) { switch (mode) { case AudioProcessing::Config::GainController1::Mode::kAdaptiveAnalog: return "AdaptiveAnalog"; case AudioProcessing::Config::GainController1::Mode::kAdaptiveDigital: return "AdaptiveDigital"; case AudioProcessing::Config::GainController1::Mode::kFixedDigital: return "FixedDigital"; + default: + RTC_NOTREACHED(); + return ""; } } std::string GainController2LevelEstimatorToString( const AudioProcessing::Config::GainController2::LevelEstimator& level) { switch (level) { case AudioProcessing::Config::GainController2::LevelEstimator::kRms: return "Rms"; case AudioProcessing::Config::GainController2::LevelEstimator::kPeak: return "Peak"; + default: + RTC_NOTREACHED(); + return ""; } } int GetDefaultMaxInternalRate() { #ifdef WEBRTC_ARCH_ARM_FAMILY return 32000; #else return 48000; diff --git a/third_party/libwebrtc/modules/pacing/pacing_controller.cc b/third_party/libwebrtc/modules/pacing/pacing_controller.cc --- a/third_party/libwebrtc/modules/pacing/pacing_controller.cc +++ b/third_party/libwebrtc/modules/pacing/pacing_controller.cc @@ -78,16 +78,19 @@ int GetPriorityForType(RtpPacketMediaTyp // Video has "normal" priority, in the old speak. // Send redundancy concurrently to video. If it is delayed it might have a // lower chance of being useful. return kFirstPriority + 3; case RtpPacketMediaType::kPadding: // Packets that are in themselves likely useless, only sent to keep the // BWE high. return kFirstPriority + 4; + default: + RTC_NOTREACHED(); + return -1; } } } // namespace const TimeDelta PacingController::kMaxExpectedQueueLength = TimeDelta::Millis(2000); const float PacingController::kDefaultPaceMultiplier = 2.5f; diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc --- a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc +++ b/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc @@ -31,12 +31,15 @@ std::unique_ptr<VideoRtpDepacketizer> Cr return std::make_unique<VideoRtpDepacketizerVp8>(); case kVideoCodecVP9: return std::make_unique<VideoRtpDepacketizerVp9>(); case kVideoCodecAV1: return std::make_unique<VideoRtpDepacketizerAv1>(); case kVideoCodecGeneric: case kVideoCodecMultiplex: return std::make_unique<VideoRtpDepacketizerGeneric>(); + default: + RTC_NOTREACHED(); + return nullptr; } } } // namespace webrtc diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc --- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc +++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc @@ -125,16 +125,19 @@ bool IsNonVolatile(RTPExtensionType type case kRtpExtensionNone: case kRtpExtensionNumberOfExtensions: RTC_NOTREACHED(); return false; case kRtpExtensionCsrcAudioLevel: // TODO: Mozilla implement for CsrcAudioLevel RTC_CHECK(false); return false; + default: + RTC_NOTREACHED(); + return false; } } bool HasBweExtension(const RtpHeaderExtensionMap& extensions_map) { return extensions_map.IsRegistered(kRtpExtensionTransportSequenceNumber) || extensions_map.IsRegistered(kRtpExtensionTransportSequenceNumber02) || extensions_map.IsRegistered(kRtpExtensionAbsoluteSendTime) || extensions_map.IsRegistered(kRtpExtensionTransmissionTimeOffset); diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc --- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc +++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc @@ -40,16 +40,19 @@ namespace { const char* FrameTypeToString(AudioFrameType frame_type) { switch (frame_type) { case AudioFrameType::kEmptyFrame: return "empty"; case AudioFrameType::kAudioFrameSpeech: return "audio_speech"; case AudioFrameType::kAudioFrameCN: return "audio_cn"; + default: + RTC_NOTREACHED(); + return ""; } } #endif constexpr char kIncludeCaptureClockOffset[] = "WebRTC-IncludeCaptureClockOffset"; } // namespace diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc b/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc --- a/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc +++ b/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc @@ -23,16 +23,19 @@ TemporalLayersChecker::CreateTemporalLay int num_temporal_layers) { switch (type) { case Vp8TemporalLayersType::kFixedPattern: return std::make_unique<DefaultTemporalLayersChecker>( num_temporal_layers); 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; } } TemporalLayersChecker::TemporalLayersChecker(int num_temporal_layers) : num_temporal_layers_(num_temporal_layers), sequence_number_(0), last_sync_sequence_number_(0), last_tl0_sequence_number_(0) {} diff --git a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc --- a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc +++ b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc @@ -49,16 +49,19 @@ bool IsFramerateScalingEnabled(Degradati } std::string ToString(VideoAdaptationReason reason) { switch (reason) { case VideoAdaptationReason::kQuality: return "quality"; case VideoAdaptationReason::kCpu: return "cpu"; + default: + RTC_NOTREACHED(); + return ""; } } } // namespace class VideoStreamEncoderResourceManager::InitialFrameDropper { public: explicit InitialFrameDropper( diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp --- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp +++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp @@ -2646,16 +2646,17 @@ get_type_name_for_precision_qualifier(co unreachable("Unsupported sampler/image type"); } /* sampler/image type */ break; } /* GLSL_TYPE_SAMPLER/GLSL_TYPE_IMAGE */ break; default: unreachable("Unsupported type"); } /* base type */ + return ""; } static unsigned select_gles_precision(unsigned qual_precision, const glsl_type *type, struct _mesa_glsl_parse_state *state, YYLTYPE *loc) { /* Precision qualifiers do not have any meaning in Desktop GLSL. diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp --- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp +++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp @@ -619,16 +619,17 @@ ir_expression::get_num_operands(ir_expre if (op <= ir_last_triop) return 3; if (op <= ir_last_quadop) return 4; unreachable("Could not calculate number of operands"); + return -1; } #include "ir_expression_operation_strings.h" const char* depth_layout_string(ir_depth_layout layout) { switch(layout) { diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp --- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp +++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp @@ -234,16 +234,17 @@ incremented_before_terminator(ir_loop *l } default: break; } } unreachable("Unable to find induction variable"); + return false; } /** * Record the fact that the given loop variable was referenced inside the loop. * * \arg in_assignee is true if the reference was on the LHS of an assignment. * * \arg in_conditional_code_or_nested_loop is true if the reference occurred diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp --- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp +++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp @@ -224,16 +224,17 @@ write_mask_to_swizzle(unsigned write_mas { switch (write_mask) { case WRITEMASK_X: return SWIZZLE_X; case WRITEMASK_Y: return SWIZZLE_Y; case WRITEMASK_Z: return SWIZZLE_Z; case WRITEMASK_W: return SWIZZLE_W; } unreachable("not reached"); + return 0; } /** * Returns whether a single-channeled write mask matches a swizzle. */ static bool write_mask_matches_swizzle(unsigned write_mask, const ir_swizzle *swz) diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp --- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp +++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp @@ -455,16 +455,17 @@ const glsl_type *glsl_type::get_bare_typ case GLSL_TYPE_VOID: case GLSL_TYPE_SUBROUTINE: case GLSL_TYPE_FUNCTION: case GLSL_TYPE_ERROR: return this; } unreachable("Invalid base type"); + return nullptr; } const glsl_type *glsl_type::get_float16_type() const { assert(this->base_type == GLSL_TYPE_FLOAT); return get_instance(GLSL_TYPE_FLOAT16, this->vector_elements, @@ -2011,16 +2012,17 @@ glsl_type::get_explicit_std140_type(bool (enum glsl_interface_packing)this->interface_packing, this->interface_row_major, this->name); delete[] fields; return type; } else { unreachable("Invalid type for UBO or SSBO"); + return nullptr; } } unsigned glsl_type::std430_base_alignment(bool row_major) const { unsigned N = is_64bit() ? 8 : 4; @@ -2369,16 +2371,17 @@ glsl_type::get_explicit_std430_type(bool (enum glsl_interface_packing)this->interface_packing, this->interface_row_major, this->name); delete[] fields; return type; } else { unreachable("Invalid type for SSBO"); + return nullptr; } } const glsl_type * glsl_type::get_explicit_interface_type(bool supports_std430) const { enum glsl_interface_packing packing = this->get_internal_ifc_packing(supports_std430); @@ -2443,16 +2446,17 @@ glsl_type::get_explicit_type_for_size_al unsigned stride = align(col_size, col_align); *size = this->matrix_columns * stride; *alignment = col_align; return glsl_type::get_instance(this->base_type, this->vector_elements, this->matrix_columns, stride, false); } else { unreachable("Unhandled type."); + return nullptr; } } unsigned glsl_type::count_vec4_slots(bool is_gl_vertex_input, bool is_bindless) const { /* From page 31 (page 37 of the PDF) of the GLSL 1.50 spec: * @@ -2943,12 +2947,13 @@ glsl_get_sampler_dim_coordinate_componen case GLSL_SAMPLER_DIM_SUBPASS: case GLSL_SAMPLER_DIM_SUBPASS_MS: return 2; case GLSL_SAMPLER_DIM_3D: case GLSL_SAMPLER_DIM_CUBE: return 3; default: unreachable("Unknown sampler dim"); + return -1; } } } diff --git a/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h b/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h --- a/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h +++ b/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h @@ -180,16 +180,17 @@ static inline gl_shader_stage case GL_COMPUTE_SUBROUTINE_UNIFORM: return MESA_SHADER_COMPUTE; case GL_TESS_CONTROL_SUBROUTINE_UNIFORM: return MESA_SHADER_TESS_CTRL; case GL_TESS_EVALUATION_SUBROUTINE_UNIFORM: return MESA_SHADER_TESS_EVAL; } unreachable("not reached"); + return MESA_SHADER_NONE; } static inline gl_shader_stage _mesa_shader_stage_from_subroutine(GLenum subroutine) { switch (subroutine) { case GL_VERTEX_SUBROUTINE: return MESA_SHADER_VERTEX; @@ -200,16 +201,17 @@ static inline gl_shader_stage case GL_COMPUTE_SUBROUTINE: return MESA_SHADER_COMPUTE; case GL_TESS_CONTROL_SUBROUTINE: return MESA_SHADER_TESS_CTRL; case GL_TESS_EVALUATION_SUBROUTINE: return MESA_SHADER_TESS_EVAL; } unreachable("not reached"); + return MESA_SHADER_NONE; } static inline GLenum _mesa_shader_stage_to_subroutine(gl_shader_stage stage) { switch (stage) { case MESA_SHADER_VERTEX: return GL_VERTEX_SUBROUTINE; @@ -225,16 +227,17 @@ static inline GLenum return GL_TESS_EVALUATION_SUBROUTINE; case MESA_SHADER_NONE: break; case MESA_SHADER_KERNEL: unreachable("not reached"); break; } unreachable("not reached"); + return GL_VERTEX_PROGRAM_ARB; } static inline GLenum _mesa_shader_stage_to_subroutine_uniform(gl_shader_stage stage) { switch (stage) { case MESA_SHADER_VERTEX: return GL_VERTEX_SUBROUTINE_UNIFORM; @@ -248,16 +251,17 @@ static inline GLenum return GL_TESS_CONTROL_SUBROUTINE_UNIFORM; case MESA_SHADER_TESS_EVAL: return GL_TESS_EVALUATION_SUBROUTINE_UNIFORM; case MESA_SHADER_NONE: case MESA_SHADER_KERNEL: break; } unreachable("not reached"); + return GL_VERTEX_PROGRAM_ARB; } extern bool _mesa_validate_pipeline_io(struct gl_pipeline_object *); #ifdef __cplusplus } #endif
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor