Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dist/include/mozilla/ArrayUtils.h
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
3
/* This Source Code Form is subject to the terms of the Mozilla Public
4
 * License, v. 2.0. If a copy of the MPL was not distributed with this
5
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7
/*
8
 * Implements various helper functions related to arrays.
9
 */
10
11
#ifndef mozilla_ArrayUtils_h
12
#define mozilla_ArrayUtils_h
13
14
#include "mozilla/Assertions.h"
15
#include "mozilla/Attributes.h"
16
17
#include <algorithm>
18
#include <stddef.h>
19
20
#ifdef __cplusplus
21
22
#include "mozilla/Alignment.h"
23
#include "mozilla/Array.h"
24
#include "mozilla/EnumeratedArray.h"
25
#include "mozilla/TypeTraits.h"
26
27
namespace mozilla {
28
29
/*
30
 * Safely subtract two pointers when it is known that aEnd >= aBegin, yielding a
31
 * size_t result.
32
 *
33
 * Ordinary pointer subtraction yields a ptrdiff_t result, which, being signed,
34
 * has insufficient range to express the distance between pointers at opposite
35
 * ends of the address space. Furthermore, most compilers use ptrdiff_t to
36
 * represent the intermediate byte address distance, before dividing by
37
 * sizeof(T); if that intermediate result overflows, they'll produce results
38
 * with the wrong sign even when the correct scaled distance would fit in a
39
 * ptrdiff_t.
40
 */
41
template<class T>
42
MOZ_ALWAYS_INLINE size_t
43
PointerRangeSize(T* aBegin, T* aEnd)
44
3.60M
{
45
3.60M
  MOZ_ASSERT(aEnd >= aBegin);
46
3.60M
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
3.60M
}
unsigned long mozilla::PointerRangeSize<unsigned char>(unsigned char*, unsigned char*)
Line
Count
Source
44
6
{
45
6
  MOZ_ASSERT(aEnd >= aBegin);
46
6
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
6
}
unsigned long mozilla::PointerRangeSize<unsigned char const>(unsigned char const*, unsigned char const*)
Line
Count
Source
44
3.26M
{
45
3.26M
  MOZ_ASSERT(aEnd >= aBegin);
46
3.26M
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
3.26M
}
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<char const>(char const*, char const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<mozilla::gfx::FontVariation const>(mozilla::gfx::FontVariation const*, mozilla::gfx::FontVariation const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<mozilla::wr::BorderSide const>(mozilla::wr::BorderSide const*, mozilla::wr::BorderSide const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<mozilla::wr::GlyphInstance const>(mozilla::wr::GlyphInstance const*, mozilla::wr::GlyphInstance const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<mozilla::Keyframe>(mozilla::Keyframe*, mozilla::Keyframe*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<JS::Value const>(JS::Value const*, JS::Value const*)
unsigned long mozilla::PointerRangeSize<char16_t const>(char16_t const*, char16_t const*)
Line
Count
Source
44
344k
{
45
344k
  MOZ_ASSERT(aEnd >= aBegin);
46
344k
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
344k
}
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<unsigned long const>(unsigned long const*, unsigned long const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<nsCOMPtr<nsIPerformanceObserver> const>(nsCOMPtr<nsIPerformanceObserver> const*, nsCOMPtr<nsIPerformanceObserver> const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<int>(int*, int*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::wasm::ValType const>(js::wasm::ValType const*, js::wasm::ValType const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::wasm::StructField const>(js::wasm::StructField const*, js::wasm::StructField const*)
unsigned long mozilla::PointerRangeSize<js::UnboxedLayout::Property const>(js::UnboxedLayout::Property const*, js::UnboxedLayout::Property const*)
Line
Count
Source
44
1
{
45
1
  MOZ_ASSERT(aEnd >= aBegin);
46
1
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
1
}
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::HeapReceiverGuard>(js::HeapReceiverGuard*, js::HeapReceiverGuard*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::GCPtr<JSFlatString*> >(js::GCPtr<JSFlatString*>*, js::GCPtr<JSFlatString*>*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<char16_t>(char16_t*, char16_t*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::jit::LinearTerm const>(js::jit::LinearTerm const*, js::jit::LinearTerm const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<char const* const>(char const* const*, char const* const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<mozilla::Utf8Unit const>(mozilla::Utf8Unit const*, mozilla::Utf8Unit const*)
unsigned long mozilla::PointerRangeSize<js::jit::LiveBundle* const>(js::jit::LiveBundle* const*, js::jit::LiveBundle* const*)
Line
Count
Source
44
730
{
45
730
  MOZ_ASSERT(aEnd >= aBegin);
46
730
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
730
}
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::jit::MDefinition* const>(js::jit::MDefinition* const*, js::jit::MDefinition* const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::jit::LAllocation const>(js::jit::LAllocation const*, js::jit::LAllocation const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::jit::LDefinition const>(js::jit::LDefinition const*, js::jit::LDefinition const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::jit::AllocationIntegrityState::InstructionInfo const>(js::jit::AllocationIntegrityState::InstructionInfo const*, js::jit::AllocationIntegrityState::InstructionInfo const*)
unsigned long mozilla::PointerRangeSize<js::jit::SpilledRegister const>(js::jit::SpilledRegister const*, js::jit::SpilledRegister const*)
Line
Count
Source
44
229
{
45
229
  MOZ_ASSERT(aEnd >= aBegin);
46
229
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
229
}
unsigned long mozilla::PointerRangeSize<js::jit::MBasicBlock* const>(js::jit::MBasicBlock* const*, js::jit::MBasicBlock* const*)
Line
Count
Source
44
112
{
45
112
  MOZ_ASSERT(aEnd >= aBegin);
46
112
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
112
}
unsigned long mozilla::PointerRangeSize<int const>(int const*, int const*)
Line
Count
Source
44
2
{
45
2
  MOZ_ASSERT(aEnd >= aBegin);
46
2
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
2
}
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::TypeSet::Type const>(js::TypeSet::Type const*, js::TypeSet::Type const*)
unsigned long mozilla::PointerRangeSize<jsid const>(jsid const*, jsid const*)
Line
Count
Source
44
8
{
45
8
  MOZ_ASSERT(aEnd >= aBegin);
46
8
  return (size_t(aEnd) - size_t(aBegin)) / sizeof(T);
47
8
}
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<char>(char*, char*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<JS::PropertyDescriptor const>(JS::PropertyDescriptor const*, JS::PropertyDescriptor const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::ParseTask* const>(js::ParseTask* const*, js::ParseTask* const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<unsigned int const>(unsigned int const*, unsigned int const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::wasm::CodeRange const>(js::wasm::CodeRange const*, js::wasm::CodeRange const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::wasm::CallSite const>(js::wasm::CallSite const*, js::wasm::CallSite const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::wasm::TrapSite const>(js::wasm::TrapSite const*, js::wasm::TrapSite const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::wasm::CallSiteTarget const>(js::wasm::CallSiteTarget const*, js::wasm::CallSiteTarget const*)
Unexecuted instantiation: unsigned long mozilla::PointerRangeSize<js::jit::MIRType const>(js::jit::MIRType const*, js::jit::MIRType const*)
48
49
/*
50
 * Compute the length of an array with constant length.  (Use of this method
51
 * with a non-array pointer will not compile.)
52
 *
53
 * Beware of the implicit trailing '\0' when using this with string constants.
54
 */
55
template<typename T, size_t N>
56
constexpr size_t
57
ArrayLength(T (&aArr)[N])
58
37.0M
{
59
37.0M
  return N;
60
37.0M
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 256ul>(char (&) [256ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 64ul>(char (&) [64ul])
unsigned long mozilla::ArrayLength<char const* const, 4ul>(char const* const (&) [4ul])
Line
Count
Source
58
15
{
59
15
  return N;
60
15
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 8ul>(unsigned char const (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 8ul>(unsigned char (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 16384ul>(unsigned char (&) [16384ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 32ul>(unsigned char (&) [32ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::psm::EVInfo const, 63ul>(mozilla::psm::EVInfo const (&) [63ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<SECOidTag, 63ul>(SECOidTag (&) [63ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 790ul>(unsigned char const (&) [790ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 1637ul>(unsigned char const (&) [1637ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 1895ul>(unsigned char const (&) [1895ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 930ul>(unsigned char const (&) [930ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const [9], 8ul>(char const (&) [8ul][9])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<PropItems const, 15ul>(PropItems const (&) [15ul])
unsigned long mozilla::ArrayLength<char, 100ul>(char (&) [100ul])
Line
Count
Source
58
31.5M
{
59
31.5M
  return N;
60
31.5M
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int const, 256ul>(unsigned int const (&) [256ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t, 100ul>(char16_t (&) [100ul])
unsigned long mozilla::ArrayLength<ManifestDirective const, 9ul>(ManifestDirective const (&) [9ul])
Line
Count
Source
58
3.03k
{
59
3.03k
  return N;
60
3.03k
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::gfx::IntRectTyped<mozilla::LayoutDevicePixel>, 2ul>(mozilla::gfx::IntRectTyped<mozilla::LayoutDevicePixel> (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<float const, 7ul>(float const (&) [7ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsXPTInterfaceInfo const, 1114ul>(nsXPTInterfaceInfo const (&) [1114ul])
unsigned long mozilla::ArrayLength<char const*, 1ul>(char const* (&) [1ul])
Line
Count
Source
58
3
{
59
3
  return N;
60
3
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsUConvProp const, 34ul>(nsUConvProp const (&) [34ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsUConvProp const, 187ul>(nsUConvProp const (&) [187ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<signed char const, 43ul>(signed char const (&) [43ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::unicode::MultiCharMapping const, 1ul>(mozilla::unicode::MultiCharMapping const (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::unicode::MultiCharMapping const, 102ul>(mozilla::unicode::MultiCharMapping const (&) [102ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::unicode::MultiCharMapping const, 48ul>(mozilla::unicode::MultiCharMapping const (&) [48ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 116ul>(char16_t const (&) [116ul])
unsigned long mozilla::ArrayLength<char16_t const*, 1ul>(char16_t const* (&) [1ul])
Line
Count
Source
58
558k
{
59
558k
  return N;
60
558k
}
unsigned long mozilla::ArrayLength<char16_t const*, 2ul>(char16_t const* (&) [2ul])
Line
Count
Source
58
76
{
59
76
  return N;
60
76
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const*, 3ul>(char16_t const* (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 104ul>(char const (&) [104ul])
unsigned long mozilla::ArrayLength<mozilla::unicode::Script const, 8ul>(mozilla::unicode::Script const (&) [8ul])
Line
Count
Source
58
23.7k
{
59
23.7k
  return N;
60
23.7k
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int, 8ul>(int (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<StatementSql, 22ul>(StatementSql (&) [22ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::net::nsHttpAtom const*, 24ul>(mozilla::net::nsHttpAtom const* (&) [24ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 32ul>(char (&) [32ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 6ul>(unsigned char (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 18ul>(char (&) [18ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 33ul>(char (&) [33ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 3ul>(char const* const (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<GSSFunction, 10ul>(GSSFunction (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::gfx::VRHMDSensorState const, 100ul>(mozilla::gfx::VRHMDSensorState const (&) [100ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::gfx::VRControllerState const, 16ul>(mozilla::gfx::VRControllerState const (&) [16ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::gfx::VRHMDSensorState, 100ul>(mozilla::gfx::VRHMDSensorState (&) [100ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::gfx::VRControllerState, 16ul>(mozilla::gfx::VRControllerState (&) [16ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<float const, 16ul>(float const (&) [16ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<float, 16ul>(float (&) [16ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<float const, 64ul>(float const (&) [64ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<float, 64ul>(float (&) [64ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<JS::SymbolCode, 3ul>(JS::SymbolCode (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 4ul>(unsigned char const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 9ul>(unsigned char const (&) [9ul])
Unexecuted instantiation: Unified_cpp_storage0.cpp:unsigned long mozilla::ArrayLength<mozilla::storage::(anonymous namespace)::Collations, 8ul>(mozilla::storage::(anonymous namespace)::Collations (&) [8ul])
Unexecuted instantiation: Unified_cpp_storage0.cpp:unsigned long mozilla::ArrayLength<mozilla::storage::(anonymous namespace)::Functions, 10ul>(mozilla::storage::(anonymous namespace)::Functions (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 2ul>(char const* (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 26ul>(char const* (&) [26ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<SSLNamedGroup const, 5ul>(SSLNamedGroup const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsDefaultMimeTypeEntry const, 5ul>(nsDefaultMimeTypeEntry const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 6ul>(char const (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsExtraMimeTypeEntry const, 48ul>(nsExtraMimeTypeEntry const (&) [48ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int, 5ul>(unsigned int (&) [5ul])
unsigned long mozilla::ArrayLength<mozilla::dom::workerinternals::JSSettings::JSGCSetting, 12ul>(mozilla::dom::workerinternals::JSSettings::JSGCSetting (&) [12ul])
Line
Count
Source
58
39
{
59
39
  return N;
60
39
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<float const, 4ul>(float const (&) [4ul])
unsigned long mozilla::ArrayLength<char const* const, 149ul>(char const* const (&) [149ul])
Line
Count
Source
58
3
{
59
3
  return N;
60
3
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int const, 149ul>(unsigned int const (&) [149ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 2ul>(char const* const (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<void*, 64ul>(void* (&) [64ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned long const, 6ul>(unsigned long const (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int, 2ul>(unsigned int (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<SurfaceMemoryReporterAttrs const, 24ul>(SurfaceMemoryReporterAttrs const (&) [24ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 11ul>(char const (&) [11ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<MozLangGroupData const, 20ul>(MozLangGroupData const (&) [20ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int const, 5ul>(unsigned int const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<gfxFontUtils::MacFontNameCharsetMapping const, 27ul>(gfxFontUtils::MacFontNameCharsetMapping const (&) [27ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::Encoding const*, 3ul>(mozilla::Encoding const* (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::Encoding const*, 11ul>(mozilla::Encoding const* (&) [11ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int const, 40ul>(unsigned int const (&) [40ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int, 8ul>(unsigned int (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int, 32ul>(unsigned int (&) [32ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int const, 7856ul>(unsigned int const (&) [7856ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned short const [2], 33ul>(unsigned short const (&) [33ul][2])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 29ul>(char const* (&) [29ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsAtom*, 29ul>(nsAtom* (&) [29ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 2ul>(char16_t const (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 4ul>(char16_t const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 5ul>(char const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::gfx::VRLayerState, 8ul>(mozilla::gfx::VRLayerState (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 6ul>(char const* (&) [6ul])
unsigned long mozilla::ArrayLength<EventNameMapping const, 204ul>(EventNameMapping const (&) [204ul])
Line
Count
Source
58
618
{
59
618
  return N;
60
618
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<EventNameMapping const, 5ul>(EventNameMapping const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t, 4ul>(char16_t (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 7ul>(char const (&) [7ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<StateTableEntry const, 3ul>(StateTableEntry const (&) [3ul])
Unexecuted instantiation: nsGlobalWindowInner.cpp:unsigned long mozilla::ArrayLength<(anonymous namespace)::InterfaceShimEntry const, 16ul>((anonymous namespace)::InterfaceShimEntry const (&) [16ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<ResultStruct const, 114ul>(ResultStruct const (&) [114ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 12ul>(char const* (&) [12ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsAtom const*, 18ul>(nsAtom const* (&) [18ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 10ul>(char const* (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<BrowseCommand const, 10ul>(BrowseCommand const (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<PhysicalBrowseCommand const, 8ul>(PhysicalBrowseCommand const (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<SelectCommand const, 6ul>(SelectCommand const (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<PhysicalSelectCommand const, 8ul>(PhysicalSelectCommand const (&) [8ul])
Unexecuted instantiation: Unified_cpp_dom_base8.cpp:unsigned long mozilla::ArrayLength<(anonymous namespace)::interval const, 92ul>((anonymous namespace)::interval const (&) [92ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom const* const, 107ul>(nsStaticAtom const* const (&) [107ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom const* const, 105ul>(nsStaticAtom const* const (&) [105ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom const* const, 16ul>(nsStaticAtom const* const (&) [16ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom const* const, 74ul>(nsStaticAtom const* const (&) [74ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom const* const, 180ul>(nsStaticAtom const* const (&) [180ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom const* const, 196ul>(nsStaticAtom const* const (&) [196ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom const* const, 115ul>(nsStaticAtom const* const (&) [115ul])
unsigned long mozilla::ArrayLength<mozilla::dom::SystemProperty, 65ul>(mozilla::dom::SystemProperty (&) [65ul])
Line
Count
Source
58
198
{
59
198
  return N;
60
198
}
unsigned long mozilla::ArrayLength<char16_t const, 1ul>(char16_t const (&) [1ul])
Line
Count
Source
58
11.5k
{
59
11.5k
  return N;
60
11.5k
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 5ul>(char16_t const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 7ul>(char16_t const (&) [7ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 21ul>(char16_t const (&) [21ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 8ul>(char16_t const (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 3ul>(char const (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 6ul>(char16_t const (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 1ul>(char const (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 11ul>(char16_t const (&) [11ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 1ul>(char const* const (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<CK_ATTRIBUTE, 9ul>(CK_ATTRIBUTE (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<CK_ATTRIBUTE, 14ul>(CK_ATTRIBUTE (&) [14ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsUConvProp const, 12ul>(nsUConvProp const (&) [12ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::dom::EncodingProp const, 32ul>(mozilla::dom::EncodingProp const (&) [32ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::dom::EncodingProp const, 81ul>(mozilla::dom::EncodingProp const (&) [81ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 8ul>(char const* (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 21ul>(char const* (&) [21ul])
Unexecuted instantiation: Unified_cpp_dom_events0.cpp:unsigned long mozilla::ArrayLength<(anonymous namespace)::FileMimeNameData, 2ul>((anonymous namespace)::FileMimeNameData (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::dom::ModifierPair const, 13ul>(mozilla::dom::ModifierPair const (&) [13ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsAttrValue::EnumTable const, 23ul>(nsAttrValue::EnumTable const (&) [23ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::dom::TextTrackKind, 2ul>(mozilla::dom::TextTrackKind (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::dom::TextTrackKind, 1ul>(mozilla::dom::TextTrackKind (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 14ul>(char const* const (&) [14ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const [7], 3ul>(char const (&) [3ul][7])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const [23], 19ul>(char const (&) [19ul][23])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const [4], 2ul>(char const (&) [2ul][4])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int const, 5ul>(int const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::FieldPatternType const, 9ul>(mozilla::FieldPatternType const (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::TrackInfo::TrackType, 2ul>(mozilla::TrackInfo::TrackType (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 7ul>(unsigned char const (&) [7ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 9ul>(char const* (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int, 2ul>(int (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int const, 4ul>(unsigned int const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::dom::VoiceDetails const, 10ul>(mozilla::dom::VoiceDetails const (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSpeechDispatcherDynamicFunction const, 10ul>(nsSpeechDispatcherDynamicFunction const (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::StringInfo, 3ul>(nsSVGElement::StringInfo (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::LengthInfo, 3ul>(nsSVGElement::LengthInfo (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::EnumInfo, 1ul>(nsSVGElement::EnumInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::LengthInfo, 4ul>(nsSVGElement::LengthInfo (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::StringInfo, 2ul>(nsSVGElement::StringInfo (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::NumberListInfo, 1ul>(nsSVGElement::NumberListInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::NumberInfo, 4ul>(nsSVGElement::NumberInfo (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::NumberInfo, 2ul>(nsSVGElement::NumberInfo (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::NumberPairInfo, 1ul>(nsSVGElement::NumberPairInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::IntegerInfo, 2ul>(nsSVGElement::IntegerInfo (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::IntegerPairInfo, 1ul>(nsSVGElement::IntegerPairInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::BooleanInfo, 1ul>(nsSVGElement::BooleanInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::NumberInfo, 1ul>(nsSVGElement::NumberInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::EnumInfo, 2ul>(nsSVGElement::EnumInfo (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::StringInfo, 1ul>(nsSVGElement::StringInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::NumberInfo, 3ul>(nsSVGElement::NumberInfo (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::NumberInfo, 8ul>(nsSVGElement::NumberInfo (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::IntegerInfo, 1ul>(nsSVGElement::IntegerInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::LengthInfo, 6ul>(nsSVGElement::LengthInfo (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom** const, 11ul>(nsStaticAtom** const (&) [11ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::AngleInfo, 1ul>(nsSVGElement::AngleInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t, 24ul>(char16_t (&) [24ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t, 50ul>(char16_t (&) [50ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::LengthInfo, 1ul>(nsSVGElement::LengthInfo (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom**, 3ul>(nsStaticAtom** (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::LengthInfo, 2ul>(nsSVGElement::LengthInfo (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::EnumInfo, 4ul>(nsSVGElement::EnumInfo (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::LengthListInfo, 4ul>(nsSVGElement::LengthListInfo (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<float, 2ul>(float (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<float, 3ul>(float (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<float, 6ul>(float (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom** const, 5ul>(nsStaticAtom** const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsSVGElement::NumberInfo, 5ul>(nsSVGElement::NumberInfo (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 4ul>(char const* (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 19ul>(char const* (&) [19ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<keyCodeData const, 187ul>(keyCodeData const (&) [187ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<txCoreFunctionDescriptor const, 27ul>(txCoreFunctionDescriptor const (&) [27ul])
unsigned long mozilla::ArrayLength<txElementHandler const, 2ul>(txElementHandler const (&) [2ul])
Line
Count
Source
58
9
{
59
9
  return N;
60
9
}
unsigned long mozilla::ArrayLength<txElementHandler const, 11ul>(txElementHandler const (&) [11ul])
Line
Count
Source
58
3
{
59
3
  return N;
60
3
}
unsigned long mozilla::ArrayLength<txElementHandler const, 18ul>(txElementHandler const (&) [18ul])
Line
Count
Source
58
3
{
59
3
  return N;
60
3
}
unsigned long mozilla::ArrayLength<txElementHandler const, 1ul>(txElementHandler const (&) [1ul])
Line
Count
Source
58
18
{
59
18
  return N;
60
18
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<CharRange const, 290ul>(CharRange const (&) [290ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 5ul>(char const* (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::dom::EnumEntry const, 2ul>(mozilla::dom::EnumEntry const (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::dom::EnumEntry const, 4ul>(mozilla::dom::EnumEntry const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 7ul>(char const* (&) [7ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<bool, 3ul>(bool (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const* const, 328ul>(char16_t const* const (&) [328ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const* const, 175ul>(char16_t const* const (&) [175ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 44ul>(char const* const (&) [44ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsLookAndFeelIntPref, 39ul>(nsLookAndFeelIntPref (&) [39ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsLookAndFeelFloatPref, 3ul>(nsLookAndFeelFloatPref (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const [41], 103ul>(char const (&) [103ul][41])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const [8], 9ul>(char16_t const (&) [9ul][8])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<_GtkWidget*, 2ul>(_GtkWidget* (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::Command const [2], 8ul>(mozilla::Command const (&) [8ul][2])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::Command const [2][2], 10ul>(mozilla::Command const (&) [10ul][2][2])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 5ul>(char const* const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::widget::KeymapWrapper::Modifier, 5ul>(mozilla::widget::KeymapWrapper::Modifier (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const [14], 6ul>(char const (&) [6ul][14])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<_GtkWidget*, 3ul>(_GtkWidget* (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const [4], 6ul>(char const (&) [6ul][4])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const [22], 7ul>(char const (&) [7ul][22])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<short const, 4ul>(short const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::ScrollCommand const, 3ul>(mozilla::ScrollCommand const (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::MoveCommand const, 6ul>(mozilla::MoveCommand const (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::PhysicalCommand const, 8ul>(mozilla::PhysicalCommand const (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsHTMLTag const, 7ul>(nsHTMLTag const (&) [7ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 19ul>(char const (&) [19ul])
unsigned long mozilla::ArrayLength<char const* const, 378ul>(char const* const (&) [378ul])
Line
Count
Source
58
1.13k
{
59
1.13k
  return N;
60
1.13k
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsCSSKTableEntry const, 6ul>(nsCSSKTableEntry const (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsCSSKTableEntry const, 5ul>(nsCSSKTableEntry const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<ComputedStyleMap::Entry const, 318ul>(ComputedStyleMap::Entry const (&) [318ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int nsCSSShadowItem::* const, 4ul>(int nsCSSShadowItem::* const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int nsCSSShadowItem::* const, 3ul>(int nsCSSShadowItem::* const (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsTObserverArray<nsARefreshObserver*>, 4ul>(nsTObserverArray<nsARefreshObserver*> (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned long, 12ul>(unsigned long (&) [12ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsFont*, 7ul>(nsFont* (&) [7ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsCSSFrameConstructor::FrameConstructionDataByTag const, 20ul>(nsCSSFrameConstructor::FrameConstructionDataByTag const (&) [20ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsCSSFrameConstructor::FrameConstructionDataByInt const, 21ul>(nsCSSFrameConstructor::FrameConstructionDataByInt const (&) [21ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsCSSFrameConstructor::FrameConstructionDataByInt const, 5ul>(nsCSSFrameConstructor::FrameConstructionDataByInt const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsCSSFrameConstructor::FrameConstructionDataByTag const, 28ul>(nsCSSFrameConstructor::FrameConstructionDataByTag const (&) [28ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsCSSFrameConstructor::FrameConstructionDataByTag const, 29ul>(nsCSSFrameConstructor::FrameConstructionDataByTag const (&) [29ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsCSSFrameConstructor::FrameConstructionDataByTag const, 51ul>(nsCSSFrameConstructor::FrameConstructionDataByTag const (&) [51ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::layout::FrameChildListID, 2ul>(mozilla::layout::FrameChildListID (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsPresArena::FreeList const, 180ul>(nsPresArena::FreeList const (&) [180ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsCSSFrameConstructor::FrameConstructionDataByDisplay const, 30ul>(nsCSSFrameConstructor::FrameConstructionDataByDisplay const (&) [30ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<MathVarMapping const, 20ul>(MathVarMapping const (&) [20ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<MathVarMapping const, 15ul>(MathVarMapping const (&) [15ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<MathVarMapping const, 23ul>(MathVarMapping const (&) [23ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<MathVarMapping const, 27ul>(MathVarMapping const (&) [27ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<MathVarMapping const, 25ul>(MathVarMapping const (&) [25ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<MathVarMapping const, 24ul>(MathVarMapping const (&) [24ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsDisplayList*, 2ul>(nsDisplayList* (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<RefPtr<mozilla::dom::Selection>, 10ul>(RefPtr<mozilla::dom::Selection> (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<RefPtr<mozilla::dom::Selection> const, 10ul>(RefPtr<mozilla::dom::Selection> const (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsTextPaintStyle::nsSelectionStyle, 5ul>(nsTextPaintStyle::nsSelectionStyle (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::SelectionType const, 10ul>(mozilla::SelectionType const (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<ChildListInsertions, 2ul>(ChildListInsertions (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<bool, 4ul>(bool (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<double, 8ul>(double (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int const, 6ul>(unsigned int const (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<RedirEntry const, 24ul>(RedirEntry const (&) [24ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<short const, 4368ul>(short const (&) [4368ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<_GInterfaceInfo const, 11ul>(_GInterfaceInfo const (&) [11ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 28ul>(char const* (&) [28ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsRoleMapEntry const, 114ul>(nsRoleMapEntry const (&) [114ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<AttrCharacteristics const, 37ul>(AttrCharacteristics const (&) [37ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<ModuleRep, 15ul>(ModuleRep (&) [15ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::a11y::TextAttrsMgr::TextAttr*, 11ul>(mozilla::a11y::TextAttrsMgr::TextAttr* (&) [11ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::a11y::HTMLMarkupMapInfo const, 79ul>(mozilla::a11y::HTMLMarkupMapInfo const (&) [79ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::a11y::XULMarkupMapInfo const, 43ul>(mozilla::a11y::XULMarkupMapInfo const (&) [43ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const [40], 89ul>(char const (&) [89ul][40])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozilla::a11y::MarkupAttrInfo const, 4ul>(mozilla::a11y::MarkupAttrInfo const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 15ul>(char const* const (&) [15ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsStaticAtom**, 9ul>(nsStaticAtom** (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int const, 20ul>(unsigned int const (&) [20ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<JS::ProfilingFrameIterator::Frame, 1024ul>(JS::ProfilingFrameIterator::Frame (&) [1024ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 512ul>(char (&) [512ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned long, 64ul>(unsigned long (&) [64ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<TransportSecurityPreload const, 487ul>(TransportSecurityPreload const (&) [487ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<CertAuthorityHash const, 198ul>(CertAuthorityHash const (&) [198ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 256ul>(unsigned char (&) [256ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 255ul>(unsigned char (&) [255ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<SSLNamedGroup const, 6ul>(SSLNamedGroup const (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<SSLSignatureScheme const, 11ul>(SSLSignatureScheme const (&) [11ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsMediaSnifferEntry, 4ul>(nsMediaSnifferEntry (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsMediaSnifferEntry, 9ul>(nsMediaSnifferEntry (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned long, 10ul>(unsigned long (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozIStorageBaseStatement*, 4ul>(mozIStorageBaseStatement* (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozIStorageBaseStatement*, 3ul>(mozIStorageBaseStatement* (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozIStorageBaseStatement*, 2ul>(mozIStorageBaseStatement* (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 222ul>(char const* const (&) [222ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 16ul>(char const* const (&) [16ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 31ul>(char const* const (&) [31ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<Provider const, 3ul>(Provider const (&) [3ul])
Unexecuted instantiation: Unified_cpp_url-classifier0.cpp:unsigned long mozilla::ArrayLength<$_6 const, 11ul>($_6 const (&) [11ul])
Unexecuted instantiation: nsTerminator.cpp:unsigned long mozilla::ArrayLength<mozilla::(anonymous namespace)::ShutdownStep, 5ul>(mozilla::(anonymous namespace)::ShutdownStep (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 8ul>(char const* const (&) [8ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 128ul>(unsigned char (&) [128ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 20ul>(unsigned char (&) [20ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<ProtocolAssociation const, 4ul>(ProtocolAssociation const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<MimeTypeAssociation const, 2ul>(MimeTypeAssociation const (&) [2ul])
Unexecuted instantiation: CTPolicyEnforcerTest.cpp:unsigned long mozilla::ArrayLength<mozilla::ct::CTPolicyEnforcerTest_ConformsToPolicyExactNumberOfSCTsForValidityPeriod_Test::TestBody()::TestData const, 7ul>(mozilla::ct::CTPolicyEnforcerTest_ConformsToPolicyExactNumberOfSCTsForValidityPeriod_Test::TestBody()::TestData const (&) [7ul])
Unexecuted instantiation: CTPolicyEnforcerTest.cpp:unsigned long mozilla::ArrayLength<mozilla::ct::CTPolicyEnforcerTest_TestEdgeCasesOfGetCertLifetimeInFullMonths_Test::TestBody()::TestData const, 5ul>(mozilla::ct::CTPolicyEnforcerTest_TestEdgeCasesOfGetCertLifetimeInFullMonths_Test::TestBody()::TestData const (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<Params const, 4ul>(Params const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<UTFStringsStringPair const, 10ul>(UTFStringsStringPair const (&) [10ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<UTFStringsStringPair const, 9ul>(UTFStringsStringPair const (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<UTFStringsStringPair const, 19ul>(UTFStringsStringPair const (&) [19ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 11ul>(char const* (&) [11ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int, 3ul>(int (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int, 4ul>(int (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int, 5ul>(int (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int, 6ul>(int (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int, 7ul>(int (&) [7ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int const, 4ul>(int const (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int, 9ul>(int (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<long, 9ul>(long (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 9ul>(char (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int, 9ul>(unsigned int (&) [9ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 12ul>(char const (&) [12ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsTString<char>, 11ul>(nsTString<char> (&) [11ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 3ul>(char const* (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<bool, 8ul>(bool (&) [8ul])
Unexecuted instantiation: Unified_cpp_locale_tests_gtest0.cpp:unsigned long mozilla::ArrayLength<Intl_Locale_OSPreferences_GetDateTimePattern_Test::TestBody()::Test, 13ul>(Intl_Locale_OSPreferences_GetDateTimePattern_Test::TestBody()::Test (&) [13ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 24ul>(char const* (&) [24ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 200ul>(char (&) [200ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<mozIStorageBaseStatement*, 1ul>(mozIStorageBaseStatement* (&) [1ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const, 30ul>(char const (&) [30ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<double, 6ul>(double (&) [6ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned short, 128ul>(unsigned short (&) [128ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned short, 256ul>(unsigned short (&) [256ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int, 30ul>(unsigned int (&) [30ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<int, 27ul>(int (&) [27ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<bool, 29ul>(bool (&) [29ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<TestFileData const, 3ul>(TestFileData const (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<InitParam, 7ul>(InitParam (&) [7ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<InitParam, 4ul>(InitParam (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 4ul>(unsigned char (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 60ul>(char const* const (&) [60ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 94ul>(char const* const (&) [94ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<TestFileData const, 29ul>(TestFileData const (&) [29ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<Test, 18ul>(Test (&) [18ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsTString<char>, 5ul>(nsTString<char> (&) [5ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<nsTString<char>, 2ul>(nsTString<char> (&) [2ul])
Unexecuted instantiation: Unified_cpp_tests_gtest0.cpp:unsigned long mozilla::ArrayLength<(anonymous namespace)::ExpectedMatch const, 3ul>((anonymous namespace)::ExpectedMatch const (&) [3ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<JS::TraceKind const, 29ul>(JS::TraceKind const (&) [29ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<bool const, 29ul>(bool const (&) [29ul])
unsigned long mozilla::ArrayLength<js::NewObjectCache::Entry, 41ul>(js::NewObjectCache::Entry (&) [41ul])
Line
Count
Source
58
4.91M
{
59
4.91M
  return N;
60
4.91M
}
unsigned long mozilla::ArrayLength<js::Class const, 12ul>(js::Class const (&) [12ul])
Line
Count
Source
58
80
{
59
80
  return N;
60
80
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<js::jit::Register const, 2ul>(js::jit::Register const (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<js::jit::MBasicBlock*, 2ul>(js::jit::MBasicBlock* (&) [2ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<ParamInfo const, 22ul>(ParamInfo const (&) [22ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<js::Class const*, 3ul>(js::Class const* (&) [3ul])
unsigned long mozilla::ArrayLength<js::TypeSet::Type, 8ul>(js::TypeSet::Type (&) [8ul])
Line
Count
Source
58
1.00k
{
59
1.00k
  return N;
60
1.00k
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 20ul>(char (&) [20ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const* const, 32ul>(char const* const (&) [32ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 24ul>(unsigned char (&) [24ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char, 4096ul>(char (&) [4096ul])
unsigned long mozilla::ArrayLength<CommonNameInfo const, 519ul>(CommonNameInfo const (&) [519ul])
Line
Count
Source
58
1.56k
{
59
1.56k
  return N;
60
1.56k
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t, 10ul>(char16_t (&) [10ul])
unsigned long mozilla::ArrayLength<js::ProtectedDataNoCheckArgs<js::CheckThreadLocal, unsigned long>, 3ul>(js::ProtectedDataNoCheckArgs<js::CheckThreadLocal, unsigned long> (&) [3ul])
Line
Count
Source
58
108
{
59
108
  return N;
60
108
}
unsigned long mozilla::ArrayLength<js::GCPtr<JS::Value>, 2ul>(js::GCPtr<JS::Value> (&) [2ul])
Line
Count
Source
58
2.70k
{
59
2.70k
  return N;
60
2.70k
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<js::RegExpShared::RegExpCompilation, 4ul>(js::RegExpShared::RegExpCompilation (&) [4ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char const*, 64ul>(char const* (&) [64ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<char16_t const, 36ul>(char16_t const (&) [36ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 34ul>(unsigned char const (&) [34ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char const, 2ul>(unsigned char const (&) [2ul])
unsigned long mozilla::ArrayLength<unsigned long const, 3ul>(unsigned long const (&) [3ul])
Line
Count
Source
58
4
{
59
4
  return N;
60
4
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<js::jit::MIRType const, 4ul>(js::jit::MIRType const (&) [4ul])
unsigned long mozilla::ArrayLength<js::gc::FinalizePhase const, 6ul>(js::gc::FinalizePhase const (&) [6ul])
Line
Count
Source
58
126
{
59
126
  return N;
60
126
}
unsigned long mozilla::ArrayLength<mozilla::UniquePtr<js::gc::SweepAction<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&, JS::Zone*>, JS::DeletePolicy<js::gc::SweepAction<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&, JS::Zone*> > >, 5ul>(mozilla::UniquePtr<js::gc::SweepAction<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&, JS::Zone*>, JS::DeletePolicy<js::gc::SweepAction<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&, JS::Zone*> > > (&) [5ul])
Line
Count
Source
58
3
{
59
3
  return N;
60
3
}
unsigned long mozilla::ArrayLength<mozilla::UniquePtr<js::gc::SweepAction<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&>, JS::DeletePolicy<js::gc::SweepAction<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&> > >, 6ul>(mozilla::UniquePtr<js::gc::SweepAction<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&>, JS::DeletePolicy<js::gc::SweepAction<js::gc::GCRuntime*, js::FreeOp*, js::SliceBudget&> > > (&) [6ul])
Line
Count
Source
58
3
{
59
3
  return N;
60
3
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<js::gc::AllocKind const, 17ul>(js::gc::AllocKind const (&) [17ul])
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned int const, 29ul>(unsigned int const (&) [29ul])
61
62
template<typename T, size_t N>
63
constexpr size_t
64
ArrayLength(const Array<T, N>& aArr)
65
7.39k
{
66
7.39k
  return N;
67
7.39k
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<JS::Heap<JSObject*>, 1624ul>(mozilla::Array<JS::Heap<JSObject*>, 1624ul> const&)
unsigned long mozilla::ArrayLength<mozilla::Array<JS::Heap<JSObject*>, 16ul>*, 102ul>(mozilla::Array<mozilla::Array<JS::Heap<JSObject*>, 16ul>*, 102ul> const&)
Line
Count
Source
65
5.56k
{
66
5.56k
  return N;
67
5.56k
}
unsigned long mozilla::ArrayLength<JS::Heap<JSObject*>, 16ul>(mozilla::Array<JS::Heap<JSObject*>, 16ul> const&)
Line
Count
Source
65
1.83k
{
66
1.83k
  return N;
67
1.83k
}
Unexecuted instantiation: unsigned long mozilla::ArrayLength<unsigned char, 7ul>(mozilla::Array<unsigned char, 7ul> const&)
68
69
template<typename E, E N, typename T>
70
constexpr size_t
71
ArrayLength(const EnumeratedArray<E, N, T>& aArr)
72
{
73
  return size_t(N);
74
}
75
76
/*
77
 * Compute the address one past the last element of a constant-length array.
78
 *
79
 * Beware of the implicit trailing '\0' when using this with string constants.
80
 */
81
template<typename T, size_t N>
82
constexpr T*
83
ArrayEnd(T (&aArr)[N])
84
3.03k
{
85
3.03k
  return aArr + ArrayLength(aArr);
86
3.03k
}
Unexecuted instantiation: unsigned char* mozilla::ArrayEnd<unsigned char, 16384ul>(unsigned char (&) [16384ul])
ManifestDirective const* mozilla::ArrayEnd<ManifestDirective const, 9ul>(ManifestDirective const (&) [9ul])
Line
Count
Source
84
3.03k
{
85
3.03k
  return aArr + ArrayLength(aArr);
86
3.03k
}
Unexecuted instantiation: CharRange const* mozilla::ArrayEnd<CharRange const, 290ul>(CharRange const (&) [290ul])
Unexecuted instantiation: nsPresArena::FreeList const* mozilla::ArrayEnd<nsPresArena::FreeList const, 180ul>(nsPresArena::FreeList const (&) [180ul])
Unexecuted instantiation: char const* const* mozilla::ArrayEnd<char const* const, 15ul>(char const* const (&) [15ul])
Unexecuted instantiation: char16_t* mozilla::ArrayEnd<char16_t, 10ul>(char16_t (&) [10ul])
87
88
template<typename T, size_t N>
89
constexpr T*
90
ArrayEnd(Array<T, N>& aArr)
91
{
92
  return &aArr[0] + ArrayLength(aArr);
93
}
94
95
template<typename T, size_t N>
96
constexpr const T*
97
ArrayEnd(const Array<T, N>& aArr)
98
{
99
  return &aArr[0] + ArrayLength(aArr);
100
}
101
102
/**
103
 * std::equal has subpar ergonomics.
104
 */
105
106
template<typename T, typename U, size_t N>
107
bool
108
ArrayEqual(const T (&a)[N], const U (&b)[N])
109
0
{
110
0
  return std::equal(a, a + N, b);
111
0
}
Unexecuted instantiation: bool mozilla::ArrayEqual<unsigned char, unsigned char, 32ul>(unsigned char const (&) [32ul], unsigned char const (&) [32ul])
Unexecuted instantiation: bool mozilla::ArrayEqual<float, float, 20ul>(float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: bool mozilla::ArrayEqual<unsigned long, unsigned long, 6ul>(unsigned long const (&) [6ul], unsigned long const (&) [6ul])
Unexecuted instantiation: bool mozilla::ArrayEqual<unsigned char, unsigned char, 20ul>(unsigned char const (&) [20ul], unsigned char const (&) [20ul])
Unexecuted instantiation: bool mozilla::ArrayEqual<unsigned char, unsigned char, 15ul>(unsigned char const (&) [15ul], unsigned char const (&) [15ul])
Unexecuted instantiation: bool mozilla::ArrayEqual<unsigned char, unsigned char, 5ul>(unsigned char const (&) [5ul], unsigned char const (&) [5ul])
Unexecuted instantiation: bool mozilla::ArrayEqual<unsigned short, unsigned short, 5ul>(unsigned short const (&) [5ul], unsigned short const (&) [5ul])
Unexecuted instantiation: bool mozilla::ArrayEqual<unsigned char, unsigned char, 16ul>(unsigned char const (&) [16ul], unsigned char const (&) [16ul])
112
113
template<typename T, typename U>
114
bool
115
ArrayEqual(const T* const a, const U* const b, const size_t n)
116
1.66M
{
117
1.66M
  return std::equal(a, a + n, b);
118
1.66M
}
bool mozilla::ArrayEqual<unsigned char, unsigned char>(unsigned char const*, unsigned char const*, unsigned long)
Line
Count
Source
116
1.62M
{
117
1.62M
  return std::equal(a, a + n, b);
118
1.62M
}
Unexecuted instantiation: bool mozilla::ArrayEqual<float, float>(float const*, float const*, unsigned long)
Unexecuted instantiation: bool mozilla::ArrayEqual<char, char>(char const*, char const*, unsigned long)
Unexecuted instantiation: bool mozilla::ArrayEqual<unsigned char, char>(unsigned char const*, char const*, unsigned long)
Unexecuted instantiation: bool mozilla::ArrayEqual<char16_t, char>(char16_t const*, char const*, unsigned long)
bool mozilla::ArrayEqual<unsigned char, char16_t>(unsigned char const*, char16_t const*, unsigned long)
Line
Count
Source
116
36.0k
{
117
36.0k
  return std::equal(a, a + n, b);
118
36.0k
}
bool mozilla::ArrayEqual<char16_t, char16_t>(char16_t const*, char16_t const*, unsigned long)
Line
Count
Source
116
1
{
117
1
  return std::equal(a, a + n, b);
118
1
}
Unexecuted instantiation: bool mozilla::ArrayEqual<js::ReceiverGuard, js::ReceiverGuard>(js::ReceiverGuard const*, js::ReceiverGuard const*, unsigned long)
Unexecuted instantiation: bool mozilla::ArrayEqual<char16_t, unsigned char>(char16_t const*, unsigned char const*, unsigned long)
119
120
namespace detail {
121
122
template<typename AlignType, typename Pointee,
123
         typename = EnableIf<!IsVoid<AlignType>::value>>
124
struct AlignedChecker
125
{
126
  static void
127
  test(const Pointee* aPtr)
128
  {
129
    MOZ_ASSERT((uintptr_t(aPtr) % MOZ_ALIGNOF(AlignType)) == 0,
130
               "performing a range-check with a misaligned pointer");
131
  }
132
};
133
134
template<typename AlignType, typename Pointee>
135
struct AlignedChecker<AlignType, Pointee>
136
{
137
  static void
138
  test(const Pointee* aPtr)
139
0
  {
140
0
  }
141
};
142
143
} // namespace detail
144
145
/**
146
 * Determines whether |aPtr| points at an object in the range [aBegin, aEnd).
147
 *
148
 * |aPtr| must have the same alignment as |aBegin| and |aEnd|.  This usually
149
 * should be achieved by ensuring |aPtr| points at a |U|, not just that it
150
 * points at a |T|.
151
 *
152
 * It is a usage error for any argument to be misaligned.
153
 *
154
 * It's okay for T* to be void*, and if so U* may also be void*.  In the latter
155
 * case no argument is required to be aligned (obviously, as void* implies no
156
 * particular alignment).
157
 */
158
template<typename T, typename U>
159
inline typename EnableIf<IsSame<T, U>::value ||
160
                         IsBaseOf<T, U>::value ||
161
                         IsVoid<T>::value,
162
                         bool>::Type
163
IsInRange(const T* aPtr, const U* aBegin, const U* aEnd)
164
0
{
165
0
  MOZ_ASSERT(aBegin <= aEnd);
166
0
  detail::AlignedChecker<U, T>::test(aPtr);
167
0
  detail::AlignedChecker<U, U>::test(aBegin);
168
0
  detail::AlignedChecker<U, U>::test(aEnd);
169
0
  return aBegin <= reinterpret_cast<const U*>(aPtr) &&
170
0
         reinterpret_cast<const U*>(aPtr) < aEnd;
171
0
}
172
173
/**
174
 * Convenience version of the above method when the valid range is specified as
175
 * uintptr_t values.  As above, |aPtr| must be aligned, and |aBegin| and |aEnd|
176
 * must be aligned with respect to |T|.
177
 */
178
template<typename T>
179
inline bool
180
IsInRange(const T* aPtr, uintptr_t aBegin, uintptr_t aEnd)
181
{
182
  return IsInRange(aPtr,
183
                   reinterpret_cast<const T*>(aBegin),
184
                   reinterpret_cast<const T*>(aEnd));
185
}
186
187
namespace detail {
188
189
/*
190
 * Helper for the MOZ_ARRAY_LENGTH() macro to make the length a typesafe
191
 * compile-time constant even on compilers lacking constexpr support.
192
 */
193
template <typename T, size_t N>
194
char (&ArrayLengthHelper(T (&array)[N]))[N];
195
196
} /* namespace detail */
197
198
} /* namespace mozilla */
199
200
#endif /* __cplusplus */
201
202
/*
203
 * MOZ_ARRAY_LENGTH() is an alternative to mozilla::ArrayLength() for C files
204
 * that can't use C++ template functions and for static_assert() calls that
205
 * can't call ArrayLength() when it is not a C++11 constexpr function.
206
 */
207
#ifdef __cplusplus
208
0
#  define MOZ_ARRAY_LENGTH(array)   sizeof(mozilla::detail::ArrayLengthHelper(array))
209
#else
210
#  define MOZ_ARRAY_LENGTH(array)   (sizeof(array)/sizeof((array)[0]))
211
#endif
212
213
#endif /* mozilla_ArrayUtils_h */