Coverage Report

Created: 2024-09-14 07:19

/src/skia/include/private/base/SkMacros.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2018 Google Inc.
3
 *
4
 * Use of this source code is governed by a BSD-style license that can be
5
 * found in the LICENSE file.
6
 */
7
#ifndef SkMacros_DEFINED
8
#define SkMacros_DEFINED
9
10
#include "include/private/base/SkTo.h" // IWYU pragma: keep
11
12
/*
13
 *  Usage:  SK_MACRO_CONCAT(a, b)   to construct the symbol ab
14
 *
15
 *  SK_MACRO_CONCAT_IMPL_PRIV just exists to make this work. Do not use directly
16
 *
17
 */
18
212k
#define SK_MACRO_CONCAT(X, Y)           SK_MACRO_CONCAT_IMPL_PRIV(X, Y)
19
212k
#define SK_MACRO_CONCAT_IMPL_PRIV(X, Y)  X ## Y
20
21
/*
22
 *  Usage: SK_MACRO_APPEND_LINE(foo)    to make foo123, where 123 is the current
23
 *                                      line number. Easy way to construct
24
 *                                      unique names for local functions or
25
 *                                      variables.
26
 */
27
212k
#define SK_MACRO_APPEND_LINE(name)  SK_MACRO_CONCAT(name, __LINE__)
28
29
#define SK_MACRO_APPEND_COUNTER(name) SK_MACRO_CONCAT(name, __COUNTER__)
30
31
////////////////////////////////////////////////////////////////////////////////
32
33
// Can be used to bracket data types that must be dense/packed, e.g. hash keys.
34
#if defined(__clang__)  // This should work on GCC too, but GCC diagnostic pop didn't seem to work!
35
    #define SK_BEGIN_REQUIRE_DENSE _Pragma("GCC diagnostic push") \
36
                                   _Pragma("GCC diagnostic error \"-Wpadded\"")
37
    #define SK_END_REQUIRE_DENSE   _Pragma("GCC diagnostic pop")
38
#else
39
    #define SK_BEGIN_REQUIRE_DENSE
40
    #define SK_END_REQUIRE_DENSE
41
#endif
42
43
#if defined(__clang__) && defined(__has_feature)
44
    // Some compilers have a preprocessor that does not appear to do short-circuit
45
    // evaluation as expected
46
    #if __has_feature(leak_sanitizer) || __has_feature(address_sanitizer)
47
        // Chrome had issues if we tried to include lsan_interface.h ourselves.
48
        // https://github.com/llvm/llvm-project/blob/10a35632d55bb05004fe3d0c2d4432bb74897ee7/compiler-rt/include/sanitizer/lsan_interface.h#L26
49
extern "C" {
50
        void __lsan_ignore_object(const void *p);
51
}
52
        #define SK_INTENTIONALLY_LEAKED(X) __lsan_ignore_object(X)
53
    #else
54
        #define SK_INTENTIONALLY_LEAKED(X) ((void)0)
55
    #endif
56
#else
57
    #define SK_INTENTIONALLY_LEAKED(X) ((void)0)
58
#endif
59
60
1.59G
#define SK_INIT_TO_AVOID_WARNING    = 0
61
62
////////////////////////////////////////////////////////////////////////////////
63
64
/**
65
 * Defines overloaded bitwise operators to make it easier to use an enum as a
66
 * bitfield.
67
 */
68
#define SK_MAKE_BITFIELD_OPS(X) \
69
402k
    inline X operator ~(X a) { \
70
402k
        using U = std::underlying_type_t<X>; \
71
402k
        return (X) (~static_cast<U>(a)); \
72
402k
    } \
Unexecuted instantiation: operator~(GrShaderFlags)
Unexecuted instantiation: operator~(SkBlockAllocator::ReserveFlags)
operator~(GrFragmentProcessor::OptimizationFlags)
Line
Count
Source
69
402k
    inline X operator ~(X a) { \
70
402k
        using U = std::underlying_type_t<X>; \
71
402k
        return (X) (~static_cast<U>(a)); \
72
402k
    } \
Unexecuted instantiation: operator~(SkScalerContextFlags)
Unexecuted instantiation: operator~(GrVkRenderPass::AttachmentFlags)
Unexecuted instantiation: skgpu::operator~(skgpu::BlendFormula::Properties)
73
407k
    inline X operator |(X a, X b) { \
74
407k
        using U = std::underlying_type_t<X>; \
75
407k
        return (X) (static_cast<U>(a) | static_cast<U>(b)); \
76
407k
    } \
Unexecuted instantiation: operator|(GrShaderFlags, GrShaderFlags)
Unexecuted instantiation: operator|(SkBlockAllocator::ReserveFlags, SkBlockAllocator::ReserveFlags)
operator|(GrFragmentProcessor::OptimizationFlags, GrFragmentProcessor::OptimizationFlags)
Line
Count
Source
73
407k
    inline X operator |(X a, X b) { \
74
407k
        using U = std::underlying_type_t<X>; \
75
407k
        return (X) (static_cast<U>(a) | static_cast<U>(b)); \
76
407k
    } \
Unexecuted instantiation: operator|(SkScalerContextFlags, SkScalerContextFlags)
Unexecuted instantiation: operator|(GrVkRenderPass::AttachmentFlags, GrVkRenderPass::AttachmentFlags)
Unexecuted instantiation: skgpu::operator|(skgpu::BlendFormula::Properties, skgpu::BlendFormula::Properties)
77
174k
    inline X& operator |=(X& a, X b) { \
78
174k
        return (a = a | b); \
79
174k
    } \
Unexecuted instantiation: operator|=(GrShaderFlags&, GrShaderFlags)
Unexecuted instantiation: operator|=(SkBlockAllocator::ReserveFlags&, SkBlockAllocator::ReserveFlags)
operator|=(GrFragmentProcessor::OptimizationFlags&, GrFragmentProcessor::OptimizationFlags)
Line
Count
Source
77
174k
    inline X& operator |=(X& a, X b) { \
78
174k
        return (a = a | b); \
79
174k
    } \
Unexecuted instantiation: operator|=(SkScalerContextFlags&, SkScalerContextFlags)
Unexecuted instantiation: operator|=(GrVkRenderPass::AttachmentFlags&, GrVkRenderPass::AttachmentFlags)
Unexecuted instantiation: skgpu::operator|=(skgpu::BlendFormula::Properties&, skgpu::BlendFormula::Properties)
80
1.46M
    inline X operator &(X a, X b) { \
81
1.46M
        using U = std::underlying_type_t<X>; \
82
1.46M
        return (X) (static_cast<U>(a) & static_cast<U>(b)); \
83
1.46M
    } \
Unexecuted instantiation: operator&(GrShaderFlags, GrShaderFlags)
Unexecuted instantiation: operator&(SkBlockAllocator::ReserveFlags, SkBlockAllocator::ReserveFlags)
operator&(GrFragmentProcessor::OptimizationFlags, GrFragmentProcessor::OptimizationFlags)
Line
Count
Source
80
158k
    inline X operator &(X a, X b) { \
81
158k
        using U = std::underlying_type_t<X>; \
82
158k
        return (X) (static_cast<U>(a) & static_cast<U>(b)); \
83
158k
    } \
operator&(SkScalerContextFlags, SkScalerContextFlags)
Line
Count
Source
80
223k
    inline X operator &(X a, X b) { \
81
223k
        using U = std::underlying_type_t<X>; \
82
223k
        return (X) (static_cast<U>(a) & static_cast<U>(b)); \
83
223k
    } \
Unexecuted instantiation: operator&(GrVkRenderPass::AttachmentFlags, GrVkRenderPass::AttachmentFlags)
skgpu::operator&(skgpu::BlendFormula::Properties, skgpu::BlendFormula::Properties)
Line
Count
Source
80
1.07M
    inline X operator &(X a, X b) { \
81
1.07M
        using U = std::underlying_type_t<X>; \
82
1.07M
        return (X) (static_cast<U>(a) & static_cast<U>(b)); \
83
1.07M
    } \
84
0
    inline X& operator &=(X& a, X b) { \
85
0
        return (a = a & b); \
86
0
    }
Unexecuted instantiation: operator&=(GrShaderFlags&, GrShaderFlags)
Unexecuted instantiation: operator&=(SkBlockAllocator::ReserveFlags&, SkBlockAllocator::ReserveFlags)
Unexecuted instantiation: operator&=(GrFragmentProcessor::OptimizationFlags&, GrFragmentProcessor::OptimizationFlags)
Unexecuted instantiation: operator&=(SkScalerContextFlags&, SkScalerContextFlags)
Unexecuted instantiation: operator&=(GrVkRenderPass::AttachmentFlags&, GrVkRenderPass::AttachmentFlags)
Unexecuted instantiation: skgpu::operator&=(skgpu::BlendFormula::Properties&, skgpu::BlendFormula::Properties)
87
88
#define SK_DECL_BITFIELD_OPS_FRIENDS(X) \
89
    friend X operator ~(X a); \
90
    friend X operator |(X a, X b); \
91
    friend X& operator |=(X& a, X b); \
92
    \
93
    friend X operator &(X a, X b); \
94
    friend X& operator &=(X& a, X b);
95
96
/**
97
 * Wraps a C++11 enum that we use as a bitfield, and enables a limited amount of
98
 * masking with type safety. Instantiated with the ~ operator.
99
 */
100
template<typename TFlags> class SkTFlagsMask {
101
public:
102
    constexpr explicit SkTFlagsMask(TFlags value) : SkTFlagsMask(static_cast<int>(value)) {}
103
132k
    constexpr explicit SkTFlagsMask(int value) : fValue(value) {}
Unexecuted instantiation: SkTFlagsMask<GpuPathRenderers>::SkTFlagsMask(int)
Unexecuted instantiation: SkTFlagsMask<GrSurfaceProxy::ResolveFlags>::SkTFlagsMask(int)
SkTFlagsMask<GrQuadAAFlags>::SkTFlagsMask(int)
Line
Count
Source
103
132k
    constexpr explicit SkTFlagsMask(int value) : fValue(value) {}
Unexecuted instantiation: FillRRectOp.cpp:SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>::SkTFlagsMask(int)
Unexecuted instantiation: SkTFlagsMask<skgpu::tess::PatchAttribs>::SkTFlagsMask(int)
104
132k
    constexpr int value() const { return fValue; }
SkTFlagsMask<GrQuadAAFlags>::value() const
Line
Count
Source
104
132k
    constexpr int value() const { return fValue; }
Unexecuted instantiation: SkTFlagsMask<GrInternalSurfaceFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GpuPathRenderers>::value() const
Unexecuted instantiation: SkTFlagsMask<GrDstSampleFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrSurfaceProxy::ResolveFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrXferBarrierFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrXPFactory::AnalysisProperties>::value() const
Unexecuted instantiation: SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>::value() const
Unexecuted instantiation: SkTFlagsMask<skgpu::tess::PatchAttribs>::value() const
Unexecuted instantiation: SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrPipeline::InputFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrPipeline::Flags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrDrawOp::FixedFunctionFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrAttachment::UsageFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<GrSkSLFP::OptFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>::value() const
Unexecuted instantiation: AAHairLinePathRenderer.cpp:SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>::value() const
Unexecuted instantiation: SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>::value() const
Unexecuted instantiation: SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>::value() const
Unexecuted instantiation: SkTFlagsMask<skgpu::ganesh::FillPathFlags>::value() const
Unexecuted instantiation: FillRRectOp.cpp:SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>::value() const
105
private:
106
    const int fValue;
107
};
108
109
/**
110
 * Defines bitwise operators that make it possible to use an enum class as a
111
 * basic bitfield.
112
 */
113
#define SK_MAKE_BITFIELD_CLASS_OPS(X) \
114
132k
    [[maybe_unused]] constexpr SkTFlagsMask<X> operator~(X a) { \
115
132k
        return SkTFlagsMask<X>(~static_cast<int>(a)); \
116
132k
    } \
operator~(GrQuadAAFlags)
Line
Count
Source
114
132k
    [[maybe_unused]] constexpr SkTFlagsMask<X> operator~(X a) { \
115
132k
        return SkTFlagsMask<X>(~static_cast<int>(a)); \
116
132k
    } \
Unexecuted instantiation: operator~(GrInternalSurfaceFlags)
Unexecuted instantiation: operator~(GpuPathRenderers)
Unexecuted instantiation: operator~(GrDstSampleFlags)
Unexecuted instantiation: operator~(GrSurfaceProxy::ResolveFlags)
Unexecuted instantiation: operator~(GrCaps::ProgramDescOverrideFlags)
Unexecuted instantiation: operator~(GrXferBarrierFlags)
Unexecuted instantiation: operator~(GrXPFactory::AnalysisProperties)
Unexecuted instantiation: skgpu::ganesh::operator~(skgpu::ganesh::Device::DeviceFlags)
Unexecuted instantiation: operator~(sk_gpu_test::GrContextFactory::ContextOverrides)
Unexecuted instantiation: skgpu::tess::operator~(skgpu::tess::PatchAttribs)
Unexecuted instantiation: operator~(GrVkRenderPass::SelfDependencyFlags)
Unexecuted instantiation: operator~(GrPipeline::InputFlags)
Unexecuted instantiation: operator~(GrPipeline::Flags)
Unexecuted instantiation: operator~(GrDrawOp::FixedFunctionFlags)
Unexecuted instantiation: operator~(GrSimpleMeshDrawOpHelper::InputFlags)
Unexecuted instantiation: operator~(GrGLSLFPFragmentBuilder::ScopeFlags)
Unexecuted instantiation: operator~(GrAttachment::UsageFlags)
Unexecuted instantiation: operator~(GrSkSLFP::OptFlags)
Unexecuted instantiation: skgpu::ganesh::operator~(skgpu::ganesh::ClearOp::Buffer)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:(anonymous namespace)::operator~((anonymous namespace)::AAHairlineOp::Program)
Unexecuted instantiation: operator~(GrModulateAtlasCoverageEffect::Flags)
Unexecuted instantiation: skgpu::ganesh::operator~(skgpu::ganesh::AtlasInstancedHelper::ShaderFlags)
Unexecuted instantiation: skgpu::ganesh::operator~(skgpu::ganesh::FillPathFlags)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator~(skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags)
117
1.35M
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
1.35M
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
1.35M
    } \
operator|(GrQuadAAFlags, GrQuadAAFlags)
Line
Count
Source
117
290k
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
290k
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
290k
    } \
operator|(GrInternalSurfaceFlags, GrInternalSurfaceFlags)
Line
Count
Source
117
160k
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
160k
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
160k
    } \
Unexecuted instantiation: operator|(GpuPathRenderers, GpuPathRenderers)
Unexecuted instantiation: operator|(GrDstSampleFlags, GrDstSampleFlags)
Unexecuted instantiation: operator|(GrSurfaceProxy::ResolveFlags, GrSurfaceProxy::ResolveFlags)
Unexecuted instantiation: operator|(GrCaps::ProgramDescOverrideFlags, GrCaps::ProgramDescOverrideFlags)
operator|(GrXferBarrierFlags, GrXferBarrierFlags)
Line
Count
Source
117
22.8k
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
22.8k
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
22.8k
    } \
operator|(GrXPFactory::AnalysisProperties, GrXPFactory::AnalysisProperties)
Line
Count
Source
117
620k
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
620k
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
620k
    } \
skgpu::ganesh::operator|(skgpu::ganesh::Device::DeviceFlags, skgpu::ganesh::Device::DeviceFlags)
Line
Count
Source
117
8.52k
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
8.52k
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
8.52k
    } \
Unexecuted instantiation: operator|(sk_gpu_test::GrContextFactory::ContextOverrides, sk_gpu_test::GrContextFactory::ContextOverrides)
Unexecuted instantiation: skgpu::tess::operator|(skgpu::tess::PatchAttribs, skgpu::tess::PatchAttribs)
Unexecuted instantiation: operator|(GrVkRenderPass::SelfDependencyFlags, GrVkRenderPass::SelfDependencyFlags)
Unexecuted instantiation: operator|(GrPipeline::InputFlags, GrPipeline::InputFlags)
operator|(GrPipeline::Flags, GrPipeline::Flags)
Line
Count
Source
117
171k
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
171k
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
171k
    } \
operator|(GrDrawOp::FixedFunctionFlags, GrDrawOp::FixedFunctionFlags)
Line
Count
Source
117
28.5k
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
28.5k
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
28.5k
    } \
operator|(GrSimpleMeshDrawOpHelper::InputFlags, GrSimpleMeshDrawOpHelper::InputFlags)
Line
Count
Source
117
9
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
9
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
9
    } \
Unexecuted instantiation: operator|(GrGLSLFPFragmentBuilder::ScopeFlags, GrGLSLFPFragmentBuilder::ScopeFlags)
Unexecuted instantiation: operator|(GrAttachment::UsageFlags, GrAttachment::UsageFlags)
operator|(GrSkSLFP::OptFlags, GrSkSLFP::OptFlags)
Line
Count
Source
117
41.6k
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
41.6k
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
41.6k
    } \
Unexecuted instantiation: skgpu::ganesh::operator|(skgpu::ganesh::ClearOp::Buffer, skgpu::ganesh::ClearOp::Buffer)
AAHairLinePathRenderer.cpp:(anonymous namespace)::operator|((anonymous namespace)::AAHairlineOp::Program, (anonymous namespace)::AAHairlineOp::Program)
Line
Count
Source
117
6.90k
    [[maybe_unused]] constexpr X operator|(X a, X b) { \
118
6.90k
        return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
119
6.90k
    } \
Unexecuted instantiation: operator|(GrModulateAtlasCoverageEffect::Flags, GrModulateAtlasCoverageEffect::Flags)
Unexecuted instantiation: skgpu::ganesh::operator|(skgpu::ganesh::AtlasInstancedHelper::ShaderFlags, skgpu::ganesh::AtlasInstancedHelper::ShaderFlags)
Unexecuted instantiation: skgpu::ganesh::operator|(skgpu::ganesh::FillPathFlags, skgpu::ganesh::FillPathFlags)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator|(skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags, skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags)
120
1.06M
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
1.06M
        return (a = a | b); \
122
1.06M
    } \
operator|=(GrQuadAAFlags&, GrQuadAAFlags)
Line
Count
Source
120
290k
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
290k
        return (a = a | b); \
122
290k
    } \
Unexecuted instantiation: operator|=(GrInternalSurfaceFlags&, GrInternalSurfaceFlags)
Unexecuted instantiation: operator|=(GpuPathRenderers&, GpuPathRenderers)
Unexecuted instantiation: operator|=(GrDstSampleFlags&, GrDstSampleFlags)
Unexecuted instantiation: operator|=(GrSurfaceProxy::ResolveFlags&, GrSurfaceProxy::ResolveFlags)
Unexecuted instantiation: operator|=(GrCaps::ProgramDescOverrideFlags&, GrCaps::ProgramDescOverrideFlags)
operator|=(GrXferBarrierFlags&, GrXferBarrierFlags)
Line
Count
Source
120
22.8k
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
22.8k
        return (a = a | b); \
122
22.8k
    } \
operator|=(GrXPFactory::AnalysisProperties&, GrXPFactory::AnalysisProperties)
Line
Count
Source
120
538k
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
538k
        return (a = a | b); \
122
538k
    } \
skgpu::ganesh::operator|=(skgpu::ganesh::Device::DeviceFlags&, skgpu::ganesh::Device::DeviceFlags)
Line
Count
Source
120
8.52k
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
8.52k
        return (a = a | b); \
122
8.52k
    } \
Unexecuted instantiation: operator|=(sk_gpu_test::GrContextFactory::ContextOverrides&, sk_gpu_test::GrContextFactory::ContextOverrides)
Unexecuted instantiation: skgpu::tess::operator|=(skgpu::tess::PatchAttribs&, skgpu::tess::PatchAttribs)
Unexecuted instantiation: operator|=(GrVkRenderPass::SelfDependencyFlags&, GrVkRenderPass::SelfDependencyFlags)
Unexecuted instantiation: operator|=(GrPipeline::InputFlags&, GrPipeline::InputFlags)
operator|=(GrPipeline::Flags&, GrPipeline::Flags)
Line
Count
Source
120
171k
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
171k
        return (a = a | b); \
122
171k
    } \
operator|=(GrDrawOp::FixedFunctionFlags&, GrDrawOp::FixedFunctionFlags)
Line
Count
Source
120
28.5k
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
28.5k
        return (a = a | b); \
122
28.5k
    } \
operator|=(GrSimpleMeshDrawOpHelper::InputFlags&, GrSimpleMeshDrawOpHelper::InputFlags)
Line
Count
Source
120
9
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
9
        return (a = a | b); \
122
9
    } \
Unexecuted instantiation: operator|=(GrGLSLFPFragmentBuilder::ScopeFlags&, GrGLSLFPFragmentBuilder::ScopeFlags)
Unexecuted instantiation: operator|=(GrAttachment::UsageFlags&, GrAttachment::UsageFlags)
operator|=(GrSkSLFP::OptFlags&, GrSkSLFP::OptFlags)
Line
Count
Source
120
3
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
3
        return (a = a | b); \
122
3
    } \
Unexecuted instantiation: skgpu::ganesh::operator|=(skgpu::ganesh::ClearOp::Buffer&, skgpu::ganesh::ClearOp::Buffer)
AAHairLinePathRenderer.cpp:(anonymous namespace)::operator|=((anonymous namespace)::AAHairlineOp::Program&, (anonymous namespace)::AAHairlineOp::Program)
Line
Count
Source
120
6.90k
    [[maybe_unused]] inline X& operator|=(X& a, X b) { \
121
6.90k
        return (a = a | b); \
122
6.90k
    } \
Unexecuted instantiation: operator|=(GrModulateAtlasCoverageEffect::Flags&, GrModulateAtlasCoverageEffect::Flags)
Unexecuted instantiation: skgpu::ganesh::operator|=(skgpu::ganesh::AtlasInstancedHelper::ShaderFlags&, skgpu::ganesh::AtlasInstancedHelper::ShaderFlags)
Unexecuted instantiation: skgpu::ganesh::operator|=(skgpu::ganesh::FillPathFlags&, skgpu::ganesh::FillPathFlags)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator|=(skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags&, skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags)
123
5.84M
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
5.84M
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
5.84M
    } \
operator&(GrQuadAAFlags, GrQuadAAFlags)
Line
Count
Source
123
78.1k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
78.1k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
78.1k
    } \
operator&(GrInternalSurfaceFlags, GrInternalSurfaceFlags)
Line
Count
Source
123
2.02M
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
2.02M
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
2.02M
    } \
operator&(GpuPathRenderers, GpuPathRenderers)
Line
Count
Source
123
14.8k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
14.8k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
14.8k
    } \
operator&(GrDstSampleFlags, GrDstSampleFlags)
Line
Count
Source
123
375k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
375k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
375k
    } \
Unexecuted instantiation: operator&(GrSurfaceProxy::ResolveFlags, GrSurfaceProxy::ResolveFlags)
Unexecuted instantiation: operator&(GrCaps::ProgramDescOverrideFlags, GrCaps::ProgramDescOverrideFlags)
Unexecuted instantiation: operator&(GrXferBarrierFlags, GrXferBarrierFlags)
operator&(GrXPFactory::AnalysisProperties, GrXPFactory::AnalysisProperties)
Line
Count
Source
123
2.28M
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
2.28M
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
2.28M
    } \
skgpu::ganesh::operator&(skgpu::ganesh::Device::DeviceFlags, skgpu::ganesh::Device::DeviceFlags)
Line
Count
Source
123
129k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
129k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
129k
    } \
operator&(sk_gpu_test::GrContextFactory::ContextOverrides, sk_gpu_test::GrContextFactory::ContextOverrides)
Line
Count
Source
123
8.65k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
8.65k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
8.65k
    } \
Unexecuted instantiation: skgpu::tess::operator&(skgpu::tess::PatchAttribs, skgpu::tess::PatchAttribs)
Unexecuted instantiation: operator&(GrVkRenderPass::SelfDependencyFlags, GrVkRenderPass::SelfDependencyFlags)
Unexecuted instantiation: operator&(GrPipeline::InputFlags, GrPipeline::InputFlags)
operator&(GrPipeline::Flags, GrPipeline::Flags)
Line
Count
Source
123
227k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
227k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
227k
    } \
operator&(GrDrawOp::FixedFunctionFlags, GrDrawOp::FixedFunctionFlags)
Line
Count
Source
123
666k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
666k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
666k
    } \
operator&(GrSimpleMeshDrawOpHelper::InputFlags, GrSimpleMeshDrawOpHelper::InputFlags)
Line
Count
Source
123
10
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
10
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
10
    } \
Unexecuted instantiation: operator&(GrGLSLFPFragmentBuilder::ScopeFlags, GrGLSLFPFragmentBuilder::ScopeFlags)
operator&(GrAttachment::UsageFlags, GrAttachment::UsageFlags)
Line
Count
Source
123
1.01k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
1.01k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
1.01k
    } \
Unexecuted instantiation: operator&(GrSkSLFP::OptFlags, GrSkSLFP::OptFlags)
skgpu::ganesh::operator&(skgpu::ganesh::ClearOp::Buffer, skgpu::ganesh::ClearOp::Buffer)
Line
Count
Source
123
9.79k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
9.79k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
9.79k
    } \
AAHairLinePathRenderer.cpp:(anonymous namespace)::operator&((anonymous namespace)::AAHairlineOp::Program, (anonymous namespace)::AAHairlineOp::Program)
Line
Count
Source
123
20.3k
    [[maybe_unused]] constexpr bool operator&(X a, X b) { \
124
20.3k
        return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
125
20.3k
    } \
Unexecuted instantiation: operator&(GrModulateAtlasCoverageEffect::Flags, GrModulateAtlasCoverageEffect::Flags)
Unexecuted instantiation: skgpu::ganesh::operator&(skgpu::ganesh::AtlasInstancedHelper::ShaderFlags, skgpu::ganesh::AtlasInstancedHelper::ShaderFlags)
Unexecuted instantiation: skgpu::ganesh::operator&(skgpu::ganesh::FillPathFlags, skgpu::ganesh::FillPathFlags)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator&(skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags, skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags)
126
0
    [[maybe_unused]] constexpr SkTFlagsMask<X> operator|(SkTFlagsMask<X> a, SkTFlagsMask<X> b) { \
127
0
        return SkTFlagsMask<X>(a.value() | b.value()); \
128
0
    } \
Unexecuted instantiation: operator|(SkTFlagsMask<GrQuadAAFlags>, SkTFlagsMask<GrQuadAAFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrInternalSurfaceFlags>, SkTFlagsMask<GrInternalSurfaceFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GpuPathRenderers>, SkTFlagsMask<GpuPathRenderers>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrDstSampleFlags>, SkTFlagsMask<GrDstSampleFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrSurfaceProxy::ResolveFlags>, SkTFlagsMask<GrSurfaceProxy::ResolveFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>, SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrXferBarrierFlags>, SkTFlagsMask<GrXferBarrierFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrXPFactory::AnalysisProperties>, SkTFlagsMask<GrXPFactory::AnalysisProperties>)
Unexecuted instantiation: skgpu::ganesh::operator|(SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>, SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>, SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>)
Unexecuted instantiation: skgpu::tess::operator|(SkTFlagsMask<skgpu::tess::PatchAttribs>, SkTFlagsMask<skgpu::tess::PatchAttribs>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>, SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrPipeline::InputFlags>, SkTFlagsMask<GrPipeline::InputFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrPipeline::Flags>, SkTFlagsMask<GrPipeline::Flags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrDrawOp::FixedFunctionFlags>, SkTFlagsMask<GrDrawOp::FixedFunctionFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>, SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>, SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrAttachment::UsageFlags>, SkTFlagsMask<GrAttachment::UsageFlags>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrSkSLFP::OptFlags>, SkTFlagsMask<GrSkSLFP::OptFlags>)
Unexecuted instantiation: skgpu::ganesh::operator|(SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>, SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:(anonymous namespace)::operator|(SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>, SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>)
Unexecuted instantiation: operator|(SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>, SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>)
Unexecuted instantiation: skgpu::ganesh::operator|(SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>, SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>)
Unexecuted instantiation: skgpu::ganesh::operator|(SkTFlagsMask<skgpu::ganesh::FillPathFlags>, SkTFlagsMask<skgpu::ganesh::FillPathFlags>)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator|(SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>, SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>)
129
0
    [[maybe_unused]] constexpr SkTFlagsMask<X> operator|(SkTFlagsMask<X> a, X b) { \
130
0
        return SkTFlagsMask<X>(a.value() | static_cast<int>(b)); \
131
0
    } \
Unexecuted instantiation: operator|(SkTFlagsMask<GrQuadAAFlags>, GrQuadAAFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrInternalSurfaceFlags>, GrInternalSurfaceFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GpuPathRenderers>, GpuPathRenderers)
Unexecuted instantiation: operator|(SkTFlagsMask<GrDstSampleFlags>, GrDstSampleFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrSurfaceProxy::ResolveFlags>, GrSurfaceProxy::ResolveFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>, GrCaps::ProgramDescOverrideFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrXferBarrierFlags>, GrXferBarrierFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrXPFactory::AnalysisProperties>, GrXPFactory::AnalysisProperties)
Unexecuted instantiation: skgpu::ganesh::operator|(SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>, skgpu::ganesh::Device::DeviceFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>, sk_gpu_test::GrContextFactory::ContextOverrides)
Unexecuted instantiation: skgpu::tess::operator|(SkTFlagsMask<skgpu::tess::PatchAttribs>, skgpu::tess::PatchAttribs)
Unexecuted instantiation: operator|(SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>, GrVkRenderPass::SelfDependencyFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrPipeline::InputFlags>, GrPipeline::InputFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrPipeline::Flags>, GrPipeline::Flags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrDrawOp::FixedFunctionFlags>, GrDrawOp::FixedFunctionFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>, GrSimpleMeshDrawOpHelper::InputFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>, GrGLSLFPFragmentBuilder::ScopeFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrAttachment::UsageFlags>, GrAttachment::UsageFlags)
Unexecuted instantiation: operator|(SkTFlagsMask<GrSkSLFP::OptFlags>, GrSkSLFP::OptFlags)
Unexecuted instantiation: skgpu::ganesh::operator|(SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>, skgpu::ganesh::ClearOp::Buffer)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:(anonymous namespace)::operator|(SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>, (anonymous namespace)::AAHairlineOp::Program)
Unexecuted instantiation: operator|(SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>, GrModulateAtlasCoverageEffect::Flags)
Unexecuted instantiation: skgpu::ganesh::operator|(SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>, skgpu::ganesh::AtlasInstancedHelper::ShaderFlags)
Unexecuted instantiation: skgpu::ganesh::operator|(SkTFlagsMask<skgpu::ganesh::FillPathFlags>, skgpu::ganesh::FillPathFlags)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator|(SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>, skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags)
132
0
    [[maybe_unused]] constexpr SkTFlagsMask<X> operator|(X a, SkTFlagsMask<X> b) { \
133
0
        return SkTFlagsMask<X>(static_cast<int>(a) | b.value()); \
134
0
    } \
Unexecuted instantiation: operator|(GrQuadAAFlags, SkTFlagsMask<GrQuadAAFlags>)
Unexecuted instantiation: operator|(GrInternalSurfaceFlags, SkTFlagsMask<GrInternalSurfaceFlags>)
Unexecuted instantiation: operator|(GpuPathRenderers, SkTFlagsMask<GpuPathRenderers>)
Unexecuted instantiation: operator|(GrDstSampleFlags, SkTFlagsMask<GrDstSampleFlags>)
Unexecuted instantiation: operator|(GrSurfaceProxy::ResolveFlags, SkTFlagsMask<GrSurfaceProxy::ResolveFlags>)
Unexecuted instantiation: operator|(GrCaps::ProgramDescOverrideFlags, SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>)
Unexecuted instantiation: operator|(GrXferBarrierFlags, SkTFlagsMask<GrXferBarrierFlags>)
Unexecuted instantiation: operator|(GrXPFactory::AnalysisProperties, SkTFlagsMask<GrXPFactory::AnalysisProperties>)
Unexecuted instantiation: skgpu::ganesh::operator|(skgpu::ganesh::Device::DeviceFlags, SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>)
Unexecuted instantiation: operator|(sk_gpu_test::GrContextFactory::ContextOverrides, SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>)
Unexecuted instantiation: skgpu::tess::operator|(skgpu::tess::PatchAttribs, SkTFlagsMask<skgpu::tess::PatchAttribs>)
Unexecuted instantiation: operator|(GrVkRenderPass::SelfDependencyFlags, SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>)
Unexecuted instantiation: operator|(GrPipeline::InputFlags, SkTFlagsMask<GrPipeline::InputFlags>)
Unexecuted instantiation: operator|(GrPipeline::Flags, SkTFlagsMask<GrPipeline::Flags>)
Unexecuted instantiation: operator|(GrDrawOp::FixedFunctionFlags, SkTFlagsMask<GrDrawOp::FixedFunctionFlags>)
Unexecuted instantiation: operator|(GrSimpleMeshDrawOpHelper::InputFlags, SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>)
Unexecuted instantiation: operator|(GrGLSLFPFragmentBuilder::ScopeFlags, SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>)
Unexecuted instantiation: operator|(GrAttachment::UsageFlags, SkTFlagsMask<GrAttachment::UsageFlags>)
Unexecuted instantiation: operator|(GrSkSLFP::OptFlags, SkTFlagsMask<GrSkSLFP::OptFlags>)
Unexecuted instantiation: skgpu::ganesh::operator|(skgpu::ganesh::ClearOp::Buffer, SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:(anonymous namespace)::operator|((anonymous namespace)::AAHairlineOp::Program, SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>)
Unexecuted instantiation: operator|(GrModulateAtlasCoverageEffect::Flags, SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>)
Unexecuted instantiation: skgpu::ganesh::operator|(skgpu::ganesh::AtlasInstancedHelper::ShaderFlags, SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>)
Unexecuted instantiation: skgpu::ganesh::operator|(skgpu::ganesh::FillPathFlags, SkTFlagsMask<skgpu::ganesh::FillPathFlags>)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator|(skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags, SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>)
135
0
    [[maybe_unused]] constexpr X operator&(SkTFlagsMask<X> a, SkTFlagsMask<X> b) { \
136
0
        return static_cast<X>(a.value() & b.value()); \
137
0
    } \
Unexecuted instantiation: operator&(SkTFlagsMask<GrQuadAAFlags>, SkTFlagsMask<GrQuadAAFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrInternalSurfaceFlags>, SkTFlagsMask<GrInternalSurfaceFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GpuPathRenderers>, SkTFlagsMask<GpuPathRenderers>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrDstSampleFlags>, SkTFlagsMask<GrDstSampleFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrSurfaceProxy::ResolveFlags>, SkTFlagsMask<GrSurfaceProxy::ResolveFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>, SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrXferBarrierFlags>, SkTFlagsMask<GrXferBarrierFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrXPFactory::AnalysisProperties>, SkTFlagsMask<GrXPFactory::AnalysisProperties>)
Unexecuted instantiation: skgpu::ganesh::operator&(SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>, SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>, SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>)
Unexecuted instantiation: skgpu::tess::operator&(SkTFlagsMask<skgpu::tess::PatchAttribs>, SkTFlagsMask<skgpu::tess::PatchAttribs>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>, SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrPipeline::InputFlags>, SkTFlagsMask<GrPipeline::InputFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrPipeline::Flags>, SkTFlagsMask<GrPipeline::Flags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrDrawOp::FixedFunctionFlags>, SkTFlagsMask<GrDrawOp::FixedFunctionFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>, SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>, SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrAttachment::UsageFlags>, SkTFlagsMask<GrAttachment::UsageFlags>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrSkSLFP::OptFlags>, SkTFlagsMask<GrSkSLFP::OptFlags>)
Unexecuted instantiation: skgpu::ganesh::operator&(SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>, SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:(anonymous namespace)::operator&(SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>, SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>)
Unexecuted instantiation: operator&(SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>, SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>)
Unexecuted instantiation: skgpu::ganesh::operator&(SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>, SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>)
Unexecuted instantiation: skgpu::ganesh::operator&(SkTFlagsMask<skgpu::ganesh::FillPathFlags>, SkTFlagsMask<skgpu::ganesh::FillPathFlags>)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator&(SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>, SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>)
138
0
    [[maybe_unused]] constexpr X operator&(SkTFlagsMask<X> a, X b) { \
139
0
        return static_cast<X>(a.value() & static_cast<int>(b)); \
140
0
    } \
Unexecuted instantiation: operator&(SkTFlagsMask<GrQuadAAFlags>, GrQuadAAFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrInternalSurfaceFlags>, GrInternalSurfaceFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GpuPathRenderers>, GpuPathRenderers)
Unexecuted instantiation: operator&(SkTFlagsMask<GrDstSampleFlags>, GrDstSampleFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrSurfaceProxy::ResolveFlags>, GrSurfaceProxy::ResolveFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>, GrCaps::ProgramDescOverrideFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrXferBarrierFlags>, GrXferBarrierFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrXPFactory::AnalysisProperties>, GrXPFactory::AnalysisProperties)
Unexecuted instantiation: skgpu::ganesh::operator&(SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>, skgpu::ganesh::Device::DeviceFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>, sk_gpu_test::GrContextFactory::ContextOverrides)
Unexecuted instantiation: skgpu::tess::operator&(SkTFlagsMask<skgpu::tess::PatchAttribs>, skgpu::tess::PatchAttribs)
Unexecuted instantiation: operator&(SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>, GrVkRenderPass::SelfDependencyFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrPipeline::InputFlags>, GrPipeline::InputFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrPipeline::Flags>, GrPipeline::Flags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrDrawOp::FixedFunctionFlags>, GrDrawOp::FixedFunctionFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>, GrSimpleMeshDrawOpHelper::InputFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>, GrGLSLFPFragmentBuilder::ScopeFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrAttachment::UsageFlags>, GrAttachment::UsageFlags)
Unexecuted instantiation: operator&(SkTFlagsMask<GrSkSLFP::OptFlags>, GrSkSLFP::OptFlags)
Unexecuted instantiation: skgpu::ganesh::operator&(SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>, skgpu::ganesh::ClearOp::Buffer)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:(anonymous namespace)::operator&(SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>, (anonymous namespace)::AAHairlineOp::Program)
Unexecuted instantiation: operator&(SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>, GrModulateAtlasCoverageEffect::Flags)
Unexecuted instantiation: skgpu::ganesh::operator&(SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>, skgpu::ganesh::AtlasInstancedHelper::ShaderFlags)
Unexecuted instantiation: skgpu::ganesh::operator&(SkTFlagsMask<skgpu::ganesh::FillPathFlags>, skgpu::ganesh::FillPathFlags)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator&(SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>, skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags)
141
132k
    [[maybe_unused]] constexpr X operator&(X a, SkTFlagsMask<X> b) { \
142
132k
        return static_cast<X>(static_cast<int>(a) & b.value()); \
143
132k
    } \
operator&(GrQuadAAFlags, SkTFlagsMask<GrQuadAAFlags>)
Line
Count
Source
141
132k
    [[maybe_unused]] constexpr X operator&(X a, SkTFlagsMask<X> b) { \
142
132k
        return static_cast<X>(static_cast<int>(a) & b.value()); \
143
132k
    } \
Unexecuted instantiation: operator&(GrInternalSurfaceFlags, SkTFlagsMask<GrInternalSurfaceFlags>)
Unexecuted instantiation: operator&(GpuPathRenderers, SkTFlagsMask<GpuPathRenderers>)
Unexecuted instantiation: operator&(GrDstSampleFlags, SkTFlagsMask<GrDstSampleFlags>)
Unexecuted instantiation: operator&(GrSurfaceProxy::ResolveFlags, SkTFlagsMask<GrSurfaceProxy::ResolveFlags>)
Unexecuted instantiation: operator&(GrCaps::ProgramDescOverrideFlags, SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>)
Unexecuted instantiation: operator&(GrXferBarrierFlags, SkTFlagsMask<GrXferBarrierFlags>)
Unexecuted instantiation: operator&(GrXPFactory::AnalysisProperties, SkTFlagsMask<GrXPFactory::AnalysisProperties>)
Unexecuted instantiation: skgpu::ganesh::operator&(skgpu::ganesh::Device::DeviceFlags, SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>)
Unexecuted instantiation: operator&(sk_gpu_test::GrContextFactory::ContextOverrides, SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>)
Unexecuted instantiation: skgpu::tess::operator&(skgpu::tess::PatchAttribs, SkTFlagsMask<skgpu::tess::PatchAttribs>)
Unexecuted instantiation: operator&(GrVkRenderPass::SelfDependencyFlags, SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>)
Unexecuted instantiation: operator&(GrPipeline::InputFlags, SkTFlagsMask<GrPipeline::InputFlags>)
Unexecuted instantiation: operator&(GrPipeline::Flags, SkTFlagsMask<GrPipeline::Flags>)
Unexecuted instantiation: operator&(GrDrawOp::FixedFunctionFlags, SkTFlagsMask<GrDrawOp::FixedFunctionFlags>)
Unexecuted instantiation: operator&(GrSimpleMeshDrawOpHelper::InputFlags, SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>)
Unexecuted instantiation: operator&(GrGLSLFPFragmentBuilder::ScopeFlags, SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>)
Unexecuted instantiation: operator&(GrAttachment::UsageFlags, SkTFlagsMask<GrAttachment::UsageFlags>)
Unexecuted instantiation: operator&(GrSkSLFP::OptFlags, SkTFlagsMask<GrSkSLFP::OptFlags>)
Unexecuted instantiation: skgpu::ganesh::operator&(skgpu::ganesh::ClearOp::Buffer, SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:(anonymous namespace)::operator&((anonymous namespace)::AAHairlineOp::Program, SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>)
Unexecuted instantiation: operator&(GrModulateAtlasCoverageEffect::Flags, SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>)
Unexecuted instantiation: skgpu::ganesh::operator&(skgpu::ganesh::AtlasInstancedHelper::ShaderFlags, SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>)
Unexecuted instantiation: skgpu::ganesh::operator&(skgpu::ganesh::FillPathFlags, SkTFlagsMask<skgpu::ganesh::FillPathFlags>)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator&(skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags, SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>)
144
132k
    [[maybe_unused]] inline X& operator&=(X& a, SkTFlagsMask<X> b) { \
145
132k
        return (a = a & b); \
146
132k
    } \
operator&=(GrQuadAAFlags&, SkTFlagsMask<GrQuadAAFlags>)
Line
Count
Source
144
132k
    [[maybe_unused]] inline X& operator&=(X& a, SkTFlagsMask<X> b) { \
145
132k
        return (a = a & b); \
146
132k
    } \
Unexecuted instantiation: operator&=(GrInternalSurfaceFlags&, SkTFlagsMask<GrInternalSurfaceFlags>)
Unexecuted instantiation: operator&=(GpuPathRenderers&, SkTFlagsMask<GpuPathRenderers>)
Unexecuted instantiation: operator&=(GrDstSampleFlags&, SkTFlagsMask<GrDstSampleFlags>)
Unexecuted instantiation: operator&=(GrSurfaceProxy::ResolveFlags&, SkTFlagsMask<GrSurfaceProxy::ResolveFlags>)
Unexecuted instantiation: operator&=(GrCaps::ProgramDescOverrideFlags&, SkTFlagsMask<GrCaps::ProgramDescOverrideFlags>)
Unexecuted instantiation: operator&=(GrXferBarrierFlags&, SkTFlagsMask<GrXferBarrierFlags>)
Unexecuted instantiation: operator&=(GrXPFactory::AnalysisProperties&, SkTFlagsMask<GrXPFactory::AnalysisProperties>)
Unexecuted instantiation: skgpu::ganesh::operator&=(skgpu::ganesh::Device::DeviceFlags&, SkTFlagsMask<skgpu::ganesh::Device::DeviceFlags>)
Unexecuted instantiation: operator&=(sk_gpu_test::GrContextFactory::ContextOverrides&, SkTFlagsMask<sk_gpu_test::GrContextFactory::ContextOverrides>)
Unexecuted instantiation: skgpu::tess::operator&=(skgpu::tess::PatchAttribs&, SkTFlagsMask<skgpu::tess::PatchAttribs>)
Unexecuted instantiation: operator&=(GrVkRenderPass::SelfDependencyFlags&, SkTFlagsMask<GrVkRenderPass::SelfDependencyFlags>)
Unexecuted instantiation: operator&=(GrPipeline::InputFlags&, SkTFlagsMask<GrPipeline::InputFlags>)
Unexecuted instantiation: operator&=(GrPipeline::Flags&, SkTFlagsMask<GrPipeline::Flags>)
Unexecuted instantiation: operator&=(GrDrawOp::FixedFunctionFlags&, SkTFlagsMask<GrDrawOp::FixedFunctionFlags>)
Unexecuted instantiation: operator&=(GrSimpleMeshDrawOpHelper::InputFlags&, SkTFlagsMask<GrSimpleMeshDrawOpHelper::InputFlags>)
Unexecuted instantiation: operator&=(GrGLSLFPFragmentBuilder::ScopeFlags&, SkTFlagsMask<GrGLSLFPFragmentBuilder::ScopeFlags>)
Unexecuted instantiation: operator&=(GrAttachment::UsageFlags&, SkTFlagsMask<GrAttachment::UsageFlags>)
Unexecuted instantiation: operator&=(GrSkSLFP::OptFlags&, SkTFlagsMask<GrSkSLFP::OptFlags>)
Unexecuted instantiation: skgpu::ganesh::operator&=(skgpu::ganesh::ClearOp::Buffer&, SkTFlagsMask<skgpu::ganesh::ClearOp::Buffer>)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:(anonymous namespace)::operator&=((anonymous namespace)::AAHairlineOp::Program&, SkTFlagsMask<(anonymous namespace)::AAHairlineOp::Program>)
Unexecuted instantiation: operator&=(GrModulateAtlasCoverageEffect::Flags&, SkTFlagsMask<GrModulateAtlasCoverageEffect::Flags>)
Unexecuted instantiation: skgpu::ganesh::operator&=(skgpu::ganesh::AtlasInstancedHelper::ShaderFlags&, SkTFlagsMask<skgpu::ganesh::AtlasInstancedHelper::ShaderFlags>)
Unexecuted instantiation: skgpu::ganesh::operator&=(skgpu::ganesh::FillPathFlags&, SkTFlagsMask<skgpu::ganesh::FillPathFlags>)
Unexecuted instantiation: FillRRectOp.cpp:skgpu::ganesh::FillRRectOp::(anonymous namespace)::operator&=(skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags&, SkTFlagsMask<skgpu::ganesh::FillRRectOp::(anonymous namespace)::FillRRectOpImpl::ProcessorFlags>)
147
148
#define SK_DECL_BITFIELD_CLASS_OPS_FRIENDS(X) \
149
    friend constexpr SkTFlagsMask<X> operator ~(X); \
150
    friend constexpr X operator |(X, X); \
151
    friend X& operator |=(X&, X); \
152
    friend constexpr bool operator &(X, X); \
153
    friend constexpr SkTFlagsMask<X> operator|(SkTFlagsMask<X>, SkTFlagsMask<X>); \
154
    friend constexpr SkTFlagsMask<X> operator|(SkTFlagsMask<X>, X); \
155
    friend constexpr SkTFlagsMask<X> operator|(X, SkTFlagsMask<X>); \
156
    friend constexpr X operator&(SkTFlagsMask<X>, SkTFlagsMask<X>); \
157
    friend constexpr X operator&(SkTFlagsMask<X>, X); \
158
    friend constexpr X operator&(X, SkTFlagsMask<X>); \
159
    friend X& operator &=(X&, SkTFlagsMask<X>)
160
161
#endif  // SkMacros_DEFINED