Coverage Report

Created: 2018-09-25 17:16

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
Line
Count
Source
1
//==- llvm/ADT/IntrusiveRefCntPtr.h - Smart Refcounting Pointer --*- C++ -*-==//
2
//
3
//                     The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
// This file defines the RefCountedBase, ThreadSafeRefCountedBase, and
11
// IntrusiveRefCntPtr classes.
12
//
13
// IntrusiveRefCntPtr is a smart pointer to an object which maintains a
14
// reference count.  (ThreadSafe)RefCountedBase is a mixin class that adds a
15
// refcount member variable and methods for updating the refcount.  An object
16
// that inherits from (ThreadSafe)RefCountedBase deletes itself when its
17
// refcount hits zero.
18
//
19
// For example:
20
//
21
//   class MyClass : public RefCountedBase<MyClass> {};
22
//
23
//   void foo() {
24
//     // Constructing an IntrusiveRefCntPtr increases the pointee's refcount by
25
//     // 1 (from 0 in this case).
26
//     IntrusiveRefCntPtr<MyClass> Ptr1(new MyClass());
27
//
28
//     // Copying an IntrusiveRefCntPtr increases the pointee's refcount by 1.
29
//     IntrusiveRefCntPtr<MyClass> Ptr2(Ptr1);
30
//
31
//     // Constructing an IntrusiveRefCntPtr has no effect on the object's
32
//     // refcount.  After a move, the moved-from pointer is null.
33
//     IntrusiveRefCntPtr<MyClass> Ptr3(std::move(Ptr1));
34
//     assert(Ptr1 == nullptr);
35
//
36
//     // Clearing an IntrusiveRefCntPtr decreases the pointee's refcount by 1.
37
//     Ptr2.reset();
38
//
39
//     // The object deletes itself when we return from the function, because
40
//     // Ptr3's destructor decrements its refcount to 0.
41
//   }
42
//
43
// You can use IntrusiveRefCntPtr with isa<T>(), dyn_cast<T>(), etc.:
44
//
45
//   IntrusiveRefCntPtr<MyClass> Ptr(new MyClass());
46
//   OtherClass *Other = dyn_cast<OtherClass>(Ptr);  // Ptr.get() not required
47
//
48
// IntrusiveRefCntPtr works with any class that
49
//
50
//  - inherits from (ThreadSafe)RefCountedBase,
51
//  - has Retain() and Release() methods, or
52
//  - specializes IntrusiveRefCntPtrInfo.
53
//
54
//===----------------------------------------------------------------------===//
55
56
#ifndef LLVM_ADT_INTRUSIVEREFCNTPTR_H
57
#define LLVM_ADT_INTRUSIVEREFCNTPTR_H
58
59
#include <atomic>
60
#include <cassert>
61
#include <cstddef>
62
63
namespace llvm {
64
65
/// A CRTP mixin class that adds reference counting to a type.
66
///
67
/// The lifetime of an object which inherits from RefCountedBase is managed by
68
/// calls to Release() and Retain(), which increment and decrement the object's
69
/// refcount, respectively.  When a Release() call decrements the refcount to 0,
70
/// the object deletes itself.
71
template <class Derived> class RefCountedBase {
72
  mutable unsigned RefCount = 0;
73
74
public:
75
808k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::DiagnosticOptions>::RefCountedBase()
Line
Count
Source
75
159k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::DiagnosticsEngine>::RefCountedBase()
Line
Count
Source
75
150k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::DiagnosticIDs>::RefCountedBase()
Line
Count
Source
75
146k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::FileManager>::RefCountedBase()
Line
Count
Source
75
83.0k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::SourceManager>::RefCountedBase()
Line
Count
Source
75
84.9k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::TargetInfo>::RefCountedBase()
Line
Count
Source
75
44.4k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::MemoryBufferCache>::RefCountedBase()
Line
Count
Source
75
44.3k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::ExternalASTSource>::RefCountedBase()
Line
Count
Source
75
7.13k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::AnalyzerOptions>::RefCountedBase()
Line
Count
Source
75
50.1k
  RefCountedBase() = default;
llvm::RefCountedBase<clang::ASTContext>::RefCountedBase()
Line
Count
Source
75
37.6k
  RefCountedBase() = default;
76
5.91k
  RefCountedBase(const RefCountedBase &) {}
77
78
1.20M
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::DiagnosticOptions>::Retain() const
Line
Count
Source
78
388k
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::DiagnosticIDs>::Retain() const
Line
Count
Source
78
326k
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::DiagnosticsEngine>::Retain() const
Line
Count
Source
78
59.9k
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::ASTContext>::Retain() const
Line
Count
Source
78
41.3k
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::TargetInfo>::Retain() const
Line
Count
Source
78
47.9k
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::ExternalASTSource>::Retain() const
Line
Count
Source
78
16.0k
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::FileManager>::Retain() const
Line
Count
Source
78
53.9k
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::SourceManager>::Retain() const
Line
Count
Source
78
48.5k
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::MemoryBufferCache>::Retain() const
Line
Count
Source
78
50.4k
  void Retain() const { ++RefCount; }
llvm::RefCountedBase<clang::AnalyzerOptions>::Retain() const
Line
Count
Source
78
169k
  void Retain() const { ++RefCount; }
79
80
1.05M
  void Release() const {
81
1.05M
    assert(RefCount > 0 && "Reference count is already zero.");
82
1.05M
    if (--RefCount == 0)
83
505k
      delete static_cast<const Derived *>(this);
84
1.05M
  }
llvm::RefCountedBase<clang::DiagnosticOptions>::Release() const
Line
Count
Source
80
345k
  void Release() const {
81
345k
    assert(RefCount > 0 && "Reference count is already zero.");
82
345k
    if (--RefCount == 0)
83
151k
      delete static_cast<const Derived *>(this);
84
345k
  }
llvm::RefCountedBase<clang::DiagnosticIDs>::Release() const
Line
Count
Source
80
312k
  void Release() const {
81
312k
    assert(RefCount > 0 && "Reference count is already zero.");
82
312k
    if (--RefCount == 0)
83
132k
      delete static_cast<const Derived *>(this);
84
312k
  }
llvm::RefCountedBase<clang::DiagnosticsEngine>::Release() const
Line
Count
Source
80
45.5k
  void Release() const {
81
45.5k
    assert(RefCount > 0 && "Reference count is already zero.");
82
45.5k
    if (--RefCount == 0)
83
32.7k
      delete static_cast<const Derived *>(this);
84
45.5k
  }
llvm::RefCountedBase<clang::ASTContext>::Release() const
Line
Count
Source
80
32.6k
  void Release() const {
81
32.6k
    assert(RefCount > 0 && "Reference count is already zero.");
82
32.6k
    if (--RefCount == 0)
83
28.9k
      delete static_cast<const Derived *>(this);
84
32.6k
  }
llvm::RefCountedBase<clang::FileManager>::Release() const
Line
Count
Source
80
39.5k
  void Release() const {
81
39.5k
    assert(RefCount > 0 && "Reference count is already zero.");
82
39.5k
    if (--RefCount == 0)
83
27.8k
      delete static_cast<const Derived *>(this);
84
39.5k
  }
llvm::RefCountedBase<clang::SourceManager>::Release() const
Line
Count
Source
80
34.1k
  void Release() const {
81
34.1k
    assert(RefCount > 0 && "Reference count is already zero.");
82
34.1k
    if (--RefCount == 0)
83
29.8k
      delete static_cast<const Derived *>(this);
84
34.1k
  }
llvm::RefCountedBase<clang::MemoryBufferCache>::Release() const
Line
Count
Source
80
35.9k
  void Release() const {
81
35.9k
    assert(RefCount > 0 && "Reference count is already zero.");
82
35.9k
    if (--RefCount == 0)
83
29.8k
      delete static_cast<const Derived *>(this);
84
35.9k
  }
llvm::RefCountedBase<clang::TargetInfo>::Release() const
Line
Count
Source
80
33.5k
  void Release() const {
81
33.5k
    assert(RefCount > 0 && "Reference count is already zero.");
82
33.5k
    if (--RefCount == 0)
83
29.9k
      delete static_cast<const Derived *>(this);
84
33.5k
  }
llvm::RefCountedBase<clang::ExternalASTSource>::Release() const
Line
Count
Source
80
15.9k
  void Release() const {
81
15.9k
    assert(RefCount > 0 && "Reference count is already zero.");
82
15.9k
    if (--RefCount == 0)
83
6.93k
      delete static_cast<const Derived *>(this);
84
15.9k
  }
llvm::RefCountedBase<clang::AnalyzerOptions>::Release() const
Line
Count
Source
80
155k
  void Release() const {
81
155k
    assert(RefCount > 0 && "Reference count is already zero.");
82
155k
    if (--RefCount == 0)
83
35.7k
      delete static_cast<const Derived *>(this);
84
155k
  }
85
};
86
87
/// A thread-safe version of \c RefCountedBase.
88
template <class Derived> class ThreadSafeRefCountedBase {
89
  mutable std::atomic<int> RefCount;
90
91
protected:
92
603k
  ThreadSafeRefCountedBase() : RefCount(0) {}
llvm::ThreadSafeRefCountedBase<clang::vfs::FileSystem>::ThreadSafeRefCountedBase()
Line
Count
Source
92
110k
  ThreadSafeRefCountedBase() : RefCount(0) {}
llvm::ThreadSafeRefCountedBase<clang::ast_matchers::internal::DynMatcherInterface>::ThreadSafeRefCountedBase()
Line
Count
Source
92
492k
  ThreadSafeRefCountedBase() : RefCount(0) {}
93
94
public:
95
3.00M
  void Retain() const { RefCount.fetch_add(1, std::memory_order_relaxed); }
llvm::ThreadSafeRefCountedBase<clang::vfs::FileSystem>::Retain() const
Line
Count
Source
95
332k
  void Retain() const { RefCount.fetch_add(1, std::memory_order_relaxed); }
llvm::ThreadSafeRefCountedBase<clang::ast_matchers::internal::DynMatcherInterface>::Retain() const
Line
Count
Source
95
2.66M
  void Retain() const { RefCount.fetch_add(1, std::memory_order_relaxed); }
96
97
2.97M
  void Release() const {
98
2.97M
    int NewRefCount = RefCount.fetch_sub(1, std::memory_order_acq_rel) - 1;
99
2.97M
    assert(NewRefCount >= 0 && "Reference count was already zero.");
100
2.97M
    if (NewRefCount == 0)
101
586k
      delete static_cast<const Derived *>(this);
102
2.97M
  }
llvm::ThreadSafeRefCountedBase<clang::vfs::FileSystem>::Release() const
Line
Count
Source
97
303k
  void Release() const {
98
303k
    int NewRefCount = RefCount.fetch_sub(1, std::memory_order_acq_rel) - 1;
99
303k
    assert(NewRefCount >= 0 && "Reference count was already zero.");
100
303k
    if (NewRefCount == 0)
101
96.0k
      delete static_cast<const Derived *>(this);
102
303k
  }
llvm::ThreadSafeRefCountedBase<clang::ast_matchers::internal::DynMatcherInterface>::Release() const
Line
Count
Source
97
2.66M
  void Release() const {
98
2.66M
    int NewRefCount = RefCount.fetch_sub(1, std::memory_order_acq_rel) - 1;
99
2.66M
    assert(NewRefCount >= 0 && "Reference count was already zero.");
100
2.66M
    if (NewRefCount == 0)
101
490k
      delete static_cast<const Derived *>(this);
102
2.66M
  }
103
};
104
105
/// Class you can specialize to provide custom retain/release functionality for
106
/// a type.
107
///
108
/// Usually specializing this class is not necessary, as IntrusiveRefCntPtr
109
/// works with any type which defines Retain() and Release() functions -- you
110
/// can define those functions yourself if RefCountedBase doesn't work for you.
111
///
112
/// One case when you might want to specialize this type is if you have
113
///  - Foo.h defines type Foo and includes Bar.h, and
114
///  - Bar.h uses IntrusiveRefCntPtr<Foo> in inline functions.
115
///
116
/// Because Foo.h includes Bar.h, Bar.h can't include Foo.h in order to pull in
117
/// the declaration of Foo.  Without the declaration of Foo, normally Bar.h
118
/// wouldn't be able to use IntrusiveRefCntPtr<Foo>, which wants to call
119
/// T::Retain and T::Release.
120
///
121
/// To resolve this, Bar.h could include a third header, FooFwd.h, which
122
/// forward-declares Foo and specializes IntrusiveRefCntPtrInfo<Foo>.  Then
123
/// Bar.h could use IntrusiveRefCntPtr<Foo>, although it still couldn't call any
124
/// functions on Foo itself, because Foo would be an incomplete type.
125
template <typename T> struct IntrusiveRefCntPtrInfo {
126
6.37M
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticOptions>::retain(clang::DiagnosticOptions*)
Line
Count
Source
126
388k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticIDs>::retain(clang::DiagnosticIDs*)
Line
Count
Source
126
326k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::vfs::FileSystem>::retain(clang::vfs::FileSystem*)
Line
Count
Source
126
282k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::vfs::InMemoryFileSystem>::retain(clang::vfs::InMemoryFileSystem*)
Line
Count
Source
126
45.1k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticsEngine>::retain(clang::DiagnosticsEngine*)
Line
Count
Source
126
59.9k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ASTContext>::retain(clang::ASTContext*)
Line
Count
Source
126
41.3k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::TargetInfo>::retain(clang::TargetInfo*)
Line
Count
Source
126
47.9k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ASTReader>::retain(clang::ASTReader*)
Line
Count
Source
126
9.02k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::FileManager>::retain(clang::FileManager*)
Line
Count
Source
126
53.9k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::SourceManager>::retain(clang::SourceManager*)
Line
Count
Source
126
48.5k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::MemoryBufferCache>::retain(clang::MemoryBufferCache*)
Line
Count
Source
126
50.4k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ExternalASTSource>::retain(clang::ExternalASTSource*)
Line
Count
Source
126
5.06k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::AnalyzerOptions>::retain(clang::AnalyzerOptions*)
Line
Count
Source
126
169k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ExternalSemaSource>::retain(clang::ExternalSemaSource*)
Line
Count
Source
126
47
  static void retain(T *obj) { obj->Retain(); }
ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtrInfo<(anonymous namespace)::ChainedIncludesSource>::retain((anonymous namespace)::ChainedIncludesSource*)
Line
Count
Source
126
23
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::vfs::OverlayFileSystem>::retain(clang::vfs::OverlayFileSystem*)
Line
Count
Source
126
5.03k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ast_matchers::internal::DynMatcherInterface>::retain(clang::ast_matchers::internal::DynMatcherInterface*)
Line
Count
Source
126
2.66M
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::ObjCMethodCall const>::retain(clang::ento::ObjCMethodCall const*)
Line
Count
Source
126
24.3k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::CallEvent const>::retain(clang::ento::CallEvent const*)
Line
Count
Source
126
640k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXConstructorCall const>::retain(clang::ento::CXXConstructorCall const*)
Line
Count
Source
126
23.9k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXAllocatorCall const>::retain(clang::ento::CXXAllocatorCall const*)
Line
Count
Source
126
2.58k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXDestructorCall const>::retain(clang::ento::CXXDestructorCall const*)
Line
Count
Source
126
2.62k
  static void retain(T *obj) { obj->Retain(); }
llvm::IntrusiveRefCntPtrInfo<clang::RopeRefCountString>::retain(clang::RopeRefCountString*)
Line
Count
Source
126
1.47M
  static void retain(T *obj) { obj->Retain(); }
127
6.19M
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::vfs::FileSystem>::release(clang::vfs::FileSystem*)
Line
Count
Source
127
253k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticOptions>::release(clang::DiagnosticOptions*)
Line
Count
Source
127
345k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticIDs>::release(clang::DiagnosticIDs*)
Line
Count
Source
127
312k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::vfs::InMemoryFileSystem>::release(clang::vfs::InMemoryFileSystem*)
Line
Count
Source
127
45.1k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticsEngine>::release(clang::DiagnosticsEngine*)
Line
Count
Source
127
45.5k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ASTContext>::release(clang::ASTContext*)
Line
Count
Source
127
32.6k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::FileManager>::release(clang::FileManager*)
Line
Count
Source
127
39.5k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::SourceManager>::release(clang::SourceManager*)
Line
Count
Source
127
34.1k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::MemoryBufferCache>::release(clang::MemoryBufferCache*)
Line
Count
Source
127
35.9k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::TargetInfo>::release(clang::TargetInfo*)
Line
Count
Source
127
33.5k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ASTReader>::release(clang::ASTReader*)
Line
Count
Source
127
8.97k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ExternalASTSource>::release(clang::ExternalASTSource*)
Line
Count
Source
127
5.01k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::AnalyzerOptions>::release(clang::AnalyzerOptions*)
Line
Count
Source
127
155k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ExternalSemaSource>::release(clang::ExternalSemaSource*)
Line
Count
Source
127
70
  static void release(T *obj) { obj->Release(); }
Unexecuted instantiation: ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtrInfo<(anonymous namespace)::ChainedIncludesSource>::release((anonymous namespace)::ChainedIncludesSource*)
llvm::IntrusiveRefCntPtrInfo<clang::vfs::OverlayFileSystem>::release(clang::vfs::OverlayFileSystem*)
Line
Count
Source
127
4.97k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::RopeRefCountString>::release(clang::RopeRefCountString*)
Line
Count
Source
127
1.47M
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ast_matchers::internal::DynMatcherInterface>::release(clang::ast_matchers::internal::DynMatcherInterface*)
Line
Count
Source
127
2.66M
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::CallEvent const>::release(clang::ento::CallEvent const*)
Line
Count
Source
127
640k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::ObjCMethodCall const>::release(clang::ento::ObjCMethodCall const*)
Line
Count
Source
127
24.3k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXConstructorCall const>::release(clang::ento::CXXConstructorCall const*)
Line
Count
Source
127
23.9k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXAllocatorCall const>::release(clang::ento::CXXAllocatorCall const*)
Line
Count
Source
127
2.58k
  static void release(T *obj) { obj->Release(); }
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXDestructorCall const>::release(clang::ento::CXXDestructorCall const*)
Line
Count
Source
127
2.62k
  static void release(T *obj) { obj->Release(); }
128
};
129
130
/// A smart pointer to a reference-counted object that inherits from
131
/// RefCountedBase or ThreadSafeRefCountedBase.
132
///
133
/// This class increments its pointee's reference count when it is created, and
134
/// decrements its refcount when it's destroyed (or is changed to point to a
135
/// different object).
136
template <typename T> class IntrusiveRefCntPtr {
137
  T *Obj = nullptr;
138
139
public:
140
  using element_type = T;
141
142
2.15M
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::IntrusiveRefCntPtr()
Line
Count
Source
142
47.2k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::FileManager>::IntrusiveRefCntPtr()
Line
Count
Source
142
47.1k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::SourceManager>::IntrusiveRefCntPtr()
Line
Count
Source
142
47.1k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::IntrusiveRefCntPtr()
Line
Count
Source
142
2.93k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::IntrusiveRefCntPtr()
Line
Count
Source
142
91.5k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::ASTContext>::IntrusiveRefCntPtr()
Line
Count
Source
142
47.1k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::ASTReader>::IntrusiveRefCntPtr()
Line
Count
Source
142
47.2k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr()
Line
Count
Source
142
44.2k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::IntrusiveRefCntPtr()
Line
Count
Source
142
44.3k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::IntrusiveRefCntPtr()
Line
Count
Source
142
568k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr()
Line
Count
Source
142
37.6k
  explicit IntrusiveRefCntPtr() = default;
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::IntrusiveRefCntPtr()
Line
Count
Source
142
1.12M
  explicit IntrusiveRefCntPtr() = default;
143
4.89M
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::IntrusiveRefCntPtr(clang::DiagnosticOptions*)
Line
Count
Source
143
384k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::IntrusiveRefCntPtr(clang::DiagnosticIDs*)
Line
Count
Source
143
146k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr(clang::vfs::FileSystem*)
Line
Count
Source
143
84.8k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::IntrusiveRefCntPtr(clang::vfs::InMemoryFileSystem*)
Line
Count
Source
143
45.1k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::IntrusiveRefCntPtr(clang::DiagnosticsEngine*)
Line
Count
Source
143
52.6k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::IntrusiveRefCntPtr(clang::ASTContext*)
Line
Count
Source
143
70.9k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::IntrusiveRefCntPtr(clang::TargetInfo*)
Line
Count
Source
143
48.0k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::FileManager>::IntrusiveRefCntPtr(clang::FileManager*)
Line
Count
Source
143
57.5k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::IntrusiveRefCntPtr(clang::SourceManager*)
Line
Count
Source
143
52.1k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::IntrusiveRefCntPtr(clang::MemoryBufferCache*)
Line
Count
Source
143
50.4k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::IntrusiveRefCntPtr(clang::ASTReader*)
Line
Count
Source
143
5.16k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::IntrusiveRefCntPtr(clang::ExternalSemaSource*)
Line
Count
Source
143
24
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtr<(anonymous namespace)::ChainedIncludesSource>::IntrusiveRefCntPtr((anonymous namespace)::ChainedIncludesSource*)
Line
Count
Source
143
23
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::IntrusiveRefCntPtr(clang::AnalyzerOptions*)
Line
Count
Source
143
50.1k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr(clang::ExternalASTSource*)
Line
Count
Source
143
2.44k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::IntrusiveRefCntPtr(clang::vfs::OverlayFileSystem*)
Line
Count
Source
143
5.03k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::IntrusiveRefCntPtr(clang::ento::ProgramState const*)
Line
Count
Source
143
2.66M
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::IntrusiveRefCntPtr(clang::ast_matchers::internal::DynMatcherInterface*)
Line
Count
Source
143
514k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::IntrusiveRefCntPtr(clang::ento::ObjCMethodCall const*)
Line
Count
Source
143
24.3k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::IntrusiveRefCntPtr(clang::ento::CallEvent const*)
Line
Count
Source
143
593k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::IntrusiveRefCntPtr(clang::ento::CXXConstructorCall const*)
Line
Count
Source
143
23.9k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::IntrusiveRefCntPtr(clang::ento::CXXAllocatorCall const*)
Line
Count
Source
143
2.58k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::IntrusiveRefCntPtr(clang::ento::CXXDestructorCall const*)
Line
Count
Source
143
2.62k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::IntrusiveRefCntPtr(clang::RopeRefCountString*)
Line
Count
Source
143
13.8k
  IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); }
144
33.2M
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> const&)
Line
Count
Source
144
179k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&)
Line
Count
Source
144
172k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> const&)
Line
Count
Source
144
8.29k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ASTReader> const&)
Line
Count
Source
144
7.27k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions> const&)
Line
Count
Source
144
119k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource> const&)
Line
Count
Source
144
23
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ExternalASTSource> const&)
Line
Count
Source
144
6
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> const&)
Line
Count
Source
144
28.9M
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface> const&)
Line
Count
Source
144
2.15M
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const> const&)
Line
Count
Source
144
46.6k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions> const&)
Line
Count
Source
144
4.18k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::RopeRefCountString> const&)
Line
Count
Source
144
1.58M
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); }
145
7.54M
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>&&)
Line
Count
Source
145
178k
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>&&)
Line
Count
Source
145
150k
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>&&)
Line
Count
Source
145
199k
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>&&)
Line
Count
Source
145
47
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ASTReader>&&)
Line
Count
Source
145
2.33k
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>&&)
Line
Count
Source
145
773
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>&&)
Line
Count
Source
145
6.10M
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>&&)
Line
Count
Source
145
431k
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>&&)
Line
Count
Source
145
5.08k
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>&&)
Line
Count
Source
145
465k
  IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; }
146
147
  template <class X>
148
82
  IntrusiveRefCntPtr(IntrusiveRefCntPtr<X> &&S) : Obj(S.get()) {
149
82
    S.Obj = nullptr;
150
82
  }
ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::IntrusiveRefCntPtr<(anonymous namespace)::ChainedIncludesSource>(llvm::IntrusiveRefCntPtr<(anonymous namespace)::ChainedIncludesSource>&&)
Line
Count
Source
148
23
  IntrusiveRefCntPtr(IntrusiveRefCntPtr<X> &&S) : Obj(S.get()) {
149
23
    S.Obj = nullptr;
150
23
  }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>&&)
Line
Count
Source
148
59
  IntrusiveRefCntPtr(IntrusiveRefCntPtr<X> &&S) : Obj(S.get()) {
149
59
    S.Obj = nullptr;
150
59
  }
151
152
  template <class X>
153
47.8k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr<X> &S) : Obj(S.get()) {
154
47.8k
    retain();
155
47.8k
  }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem> const&)
Line
Count
Source
153
45.1k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr<X> &S) : Obj(S.get()) {
154
45.1k
    retain();
155
45.1k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr<clang::ASTReader>(llvm::IntrusiveRefCntPtr<clang::ASTReader> const&)
Line
Count
Source
153
2.61k
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr<X> &S) : Obj(S.get()) {
154
2.61k
    retain();
155
2.61k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr<clang::ExternalSemaSource>(llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource> const&)
Line
Count
Source
153
23
  IntrusiveRefCntPtr(const IntrusiveRefCntPtr<X> &S) : Obj(S.get()) {
154
23
    retain();
155
23
  }
156
157
44.2M
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::~IntrusiveRefCntPtr()
Line
Count
Source
157
522k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::~IntrusiveRefCntPtr()
Line
Count
Source
157
495k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::~IntrusiveRefCntPtr()
Line
Count
Source
157
490k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::~IntrusiveRefCntPtr()
Line
Count
Source
157
45.1k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::~IntrusiveRefCntPtr()
Line
Count
Source
157
93.6k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::~IntrusiveRefCntPtr()
Line
Count
Source
157
103k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::FileManager>::~IntrusiveRefCntPtr()
Line
Count
Source
157
91.0k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::~IntrusiveRefCntPtr()
Line
Count
Source
157
84.9k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::~IntrusiveRefCntPtr()
Line
Count
Source
157
38.9k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::~IntrusiveRefCntPtr()
Line
Count
Source
157
110k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::~IntrusiveRefCntPtr()
Line
Count
Source
157
47.5k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::~IntrusiveRefCntPtr()
Line
Count
Source
157
39.1k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::~IntrusiveRefCntPtr()
Line
Count
Source
157
156k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::~IntrusiveRefCntPtr()
Line
Count
Source
157
30.0k
  ~IntrusiveRefCntPtr() { release(); }
ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtr<(anonymous namespace)::ChainedIncludesSource>::~IntrusiveRefCntPtr()
Line
Count
Source
157
23
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::~IntrusiveRefCntPtr()
Line
Count
Source
157
5.03k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::~IntrusiveRefCntPtr()
Line
Count
Source
157
3.19M
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::~IntrusiveRefCntPtr()
Line
Count
Source
157
34.9M
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::~IntrusiveRefCntPtr()
Line
Count
Source
157
3.09M
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::~IntrusiveRefCntPtr()
Line
Count
Source
157
640k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::~IntrusiveRefCntPtr()
Line
Count
Source
157
24.3k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::~IntrusiveRefCntPtr()
Line
Count
Source
157
23.9k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::~IntrusiveRefCntPtr()
Line
Count
Source
157
2.58k
  ~IntrusiveRefCntPtr() { release(); }
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::~IntrusiveRefCntPtr()
Line
Count
Source
157
2.62k
  ~IntrusiveRefCntPtr() { release(); }
158
159
4.67M
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
4.67M
    swap(S);
161
4.67M
    return *this;
162
4.67M
  }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::operator=(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>)
Line
Count
Source
159
2.70M
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
2.70M
    swap(S);
161
2.70M
    return *this;
162
2.70M
  }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::operator=(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>)
Line
Count
Source
159
71.6k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
71.6k
    swap(S);
161
71.6k
    return *this;
162
71.6k
  }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::operator=(llvm::IntrusiveRefCntPtr<clang::ASTContext>)
Line
Count
Source
159
70.9k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
70.9k
    swap(S);
161
70.9k
    return *this;
162
70.9k
  }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::operator=(llvm::IntrusiveRefCntPtr<clang::TargetInfo>)
Line
Count
Source
159
48.0k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
48.0k
    swap(S);
161
48.0k
    return *this;
162
48.0k
  }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::operator=(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>)
Line
Count
Source
159
48.1k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
48.1k
    swap(S);
161
48.1k
    return *this;
162
48.1k
  }
llvm::IntrusiveRefCntPtr<clang::FileManager>::operator=(llvm::IntrusiveRefCntPtr<clang::FileManager>)
Line
Count
Source
159
52.2k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
52.2k
    swap(S);
161
52.2k
    return *this;
162
52.2k
  }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::operator=(llvm::IntrusiveRefCntPtr<clang::SourceManager>)
Line
Count
Source
159
51.4k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
51.4k
    swap(S);
161
51.4k
    return *this;
162
51.4k
  }
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::operator=(llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>)
Line
Count
Source
159
1.24k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
1.24k
    swap(S);
161
1.24k
    return *this;
162
1.24k
  }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::operator=(llvm::IntrusiveRefCntPtr<clang::ASTReader>)
Line
Count
Source
159
8.76k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
8.76k
    swap(S);
161
8.76k
    return *this;
162
8.76k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::operator=(llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>)
Line
Count
Source
159
47
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
47
    swap(S);
161
47
    return *this;
162
47
  }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::operator=(llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>)
Line
Count
Source
159
12.1k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
12.1k
    swap(S);
161
12.1k
    return *this;
162
12.1k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::operator=(llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>)
Line
Count
Source
159
5.08k
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
5.08k
    swap(S);
161
5.08k
    return *this;
162
5.08k
  }
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::operator=(llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>)
Line
Count
Source
159
1.59M
  IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) {
160
1.59M
    swap(S);
161
1.59M
    return *this;
162
1.59M
  }
163
164
6.60M
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::operator*() const
Line
Count
Source
164
1.49M
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::operator*() const
Line
Count
Source
164
1.77M
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::operator*() const
Line
Count
Source
164
674k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::FileManager>::operator*() const
Line
Count
Source
164
102k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::operator*() const
Line
Count
Source
164
304k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::operator*() const
Line
Count
Source
164
252k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::operator*() const
Line
Count
Source
164
686k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::operator*() const
Line
Count
Source
164
41.2k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::operator*() const
Line
Count
Source
164
23
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::operator*() const
Line
Count
Source
164
462
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::operator*() const
Line
Count
Source
164
42.8k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::operator*() const
Line
Count
Source
164
36.9k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::operator*() const
Line
Count
Source
164
641k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::operator*() const
Line
Count
Source
164
57.2k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::operator*() const
Line
Count
Source
164
3.75k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::operator*() const
Line
Count
Source
164
2.83k
  T &operator*() const { return *Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::operator*() const
Line
Count
Source
164
494k
  T &operator*() const { return *Obj; }
165
112M
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::operator->() const
Line
Count
Source
165
2.76M
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::operator->() const
Line
Count
Source
165
89.4M
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::operator->() const
Line
Count
Source
165
310k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::operator->() const
Line
Count
Source
165
55.9k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::operator->() const
Line
Count
Source
165
163k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::operator->() const
Line
Count
Source
165
11.0k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::FileManager>::operator->() const
Line
Count
Source
165
20.0k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::operator->() const
Line
Count
Source
165
24.6k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::operator->() const
Line
Count
Source
165
125
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::operator->() const
Line
Count
Source
165
518k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::operator->() const
Line
Count
Source
165
1
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::operator->() const
Line
Count
Source
165
5.76k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::operator->() const
Line
Count
Source
165
405k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::operator->() const
Line
Count
Source
165
5.91M
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::operator->() const
Line
Count
Source
165
12.9M
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::operator->() const
Line
Count
Source
165
109k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::operator->() const
Line
Count
Source
165
12.8k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::operator->() const
Line
Count
Source
165
400
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::operator->() const
Line
Count
Source
165
1.25k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::operator->() const
Line
Count
Source
165
13
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::operator->() const
Line
Count
Source
165
10.4k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::operator->() const
Line
Count
Source
165
133k
  T *operator->() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::operator->() const
Line
Count
Source
165
146
  T *operator->() const { return Obj; }
166
206M
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::get() const
Line
Count
Source
166
45.4k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::get() const
Line
Count
Source
166
200M
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::get() const
Line
Count
Source
166
14.5k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::get() const
Line
Count
Source
166
4.02k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::get() const
Line
Count
Source
166
4.92k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::get() const
Line
Count
Source
166
4.07k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::FileManager>::get() const
Line
Count
Source
166
40.9k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::get() const
Line
Count
Source
166
7
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::get() const
Line
Count
Source
166
77.2k
  T *get() const { return Obj; }
ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtr<(anonymous namespace)::ChainedIncludesSource>::get() const
Line
Count
Source
166
23
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::get() const
Line
Count
Source
166
47
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::get() const
Line
Count
Source
166
5.01k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::get() const
Line
Count
Source
166
25.1k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::get() const
Line
Count
Source
166
78
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::get() const
Line
Count
Source
166
5.97M
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::get() const
Line
Count
Source
166
53.5k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::get() const
Line
Count
Source
166
8.64k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::get() const
Line
Count
Source
166
680
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::get() const
Line
Count
Source
166
4.67k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::get() const
Line
Count
Source
166
1.36k
  T *get() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::get() const
Line
Count
Source
166
10.3k
  T *get() const { return Obj; }
167
3.43M
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::operator bool() const
Line
Count
Source
167
151k
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::operator bool() const
Line
Count
Source
167
38.4k
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::operator bool() const
Line
Count
Source
167
179k
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::FileManager>::operator bool() const
Line
Count
Source
167
51.4k
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::operator bool() const
Line
Count
Source
167
47.9k
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::operator bool() const
Line
Count
Source
167
574k
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::operator bool() const
Line
Count
Source
167
56.2k
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::operator bool() const
Line
Count
Source
167
37.3k
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::operator bool() const
Line
Count
Source
167
2.28M
  explicit operator bool() const { return Obj; }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::operator bool() const
Line
Count
Source
167
10.7k
  explicit operator bool() const { return Obj; }
168
169
4.67M
  void swap(IntrusiveRefCntPtr &other) {
170
4.67M
    T *tmp = other.Obj;
171
4.67M
    other.Obj = Obj;
172
4.67M
    Obj = tmp;
173
4.67M
  }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::swap(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>&)
Line
Count
Source
169
71.6k
  void swap(IntrusiveRefCntPtr &other) {
170
71.6k
    T *tmp = other.Obj;
171
71.6k
    other.Obj = Obj;
172
71.6k
    Obj = tmp;
173
71.6k
  }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::swap(llvm::IntrusiveRefCntPtr<clang::ASTContext>&)
Line
Count
Source
169
70.9k
  void swap(IntrusiveRefCntPtr &other) {
170
70.9k
    T *tmp = other.Obj;
171
70.9k
    other.Obj = Obj;
172
70.9k
    Obj = tmp;
173
70.9k
  }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::swap(llvm::IntrusiveRefCntPtr<clang::TargetInfo>&)
Line
Count
Source
169
48.0k
  void swap(IntrusiveRefCntPtr &other) {
170
48.0k
    T *tmp = other.Obj;
171
48.0k
    other.Obj = Obj;
172
48.0k
    Obj = tmp;
173
48.0k
  }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::swap(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>&)
Line
Count
Source
169
48.1k
  void swap(IntrusiveRefCntPtr &other) {
170
48.1k
    T *tmp = other.Obj;
171
48.1k
    other.Obj = Obj;
172
48.1k
    Obj = tmp;
173
48.1k
  }
llvm::IntrusiveRefCntPtr<clang::FileManager>::swap(llvm::IntrusiveRefCntPtr<clang::FileManager>&)
Line
Count
Source
169
52.2k
  void swap(IntrusiveRefCntPtr &other) {
170
52.2k
    T *tmp = other.Obj;
171
52.2k
    other.Obj = Obj;
172
52.2k
    Obj = tmp;
173
52.2k
  }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::swap(llvm::IntrusiveRefCntPtr<clang::SourceManager>&)
Line
Count
Source
169
51.4k
  void swap(IntrusiveRefCntPtr &other) {
170
51.4k
    T *tmp = other.Obj;
171
51.4k
    other.Obj = Obj;
172
51.4k
    Obj = tmp;
173
51.4k
  }
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::swap(llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>&)
Line
Count
Source
169
1.24k
  void swap(IntrusiveRefCntPtr &other) {
170
1.24k
    T *tmp = other.Obj;
171
1.24k
    other.Obj = Obj;
172
1.24k
    Obj = tmp;
173
1.24k
  }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::swap(llvm::IntrusiveRefCntPtr<clang::ASTReader>&)
Line
Count
Source
169
8.76k
  void swap(IntrusiveRefCntPtr &other) {
170
8.76k
    T *tmp = other.Obj;
171
8.76k
    other.Obj = Obj;
172
8.76k
    Obj = tmp;
173
8.76k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::swap(llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>&)
Line
Count
Source
169
47
  void swap(IntrusiveRefCntPtr &other) {
170
47
    T *tmp = other.Obj;
171
47
    other.Obj = Obj;
172
47
    Obj = tmp;
173
47
  }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::swap(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>&)
Line
Count
Source
169
2.70M
  void swap(IntrusiveRefCntPtr &other) {
170
2.70M
    T *tmp = other.Obj;
171
2.70M
    other.Obj = Obj;
172
2.70M
    Obj = tmp;
173
2.70M
  }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::swap(llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>&)
Line
Count
Source
169
12.1k
  void swap(IntrusiveRefCntPtr &other) {
170
12.1k
    T *tmp = other.Obj;
171
12.1k
    other.Obj = Obj;
172
12.1k
    Obj = tmp;
173
12.1k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::swap(llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>&)
Line
Count
Source
169
5.08k
  void swap(IntrusiveRefCntPtr &other) {
170
5.08k
    T *tmp = other.Obj;
171
5.08k
    other.Obj = Obj;
172
5.08k
    Obj = tmp;
173
5.08k
  }
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::swap(llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>&)
Line
Count
Source
169
1.59M
  void swap(IntrusiveRefCntPtr &other) {
170
1.59M
    T *tmp = other.Obj;
171
1.59M
    other.Obj = Obj;
172
1.59M
    Obj = tmp;
173
1.59M
  }
174
175
14.8k
  void reset() {
176
14.8k
    release();
177
14.8k
    Obj = nullptr;
178
14.8k
  }
llvm::IntrusiveRefCntPtr<clang::FileManager>::reset()
Line
Count
Source
175
803
  void reset() {
176
803
    release();
177
803
    Obj = nullptr;
178
803
  }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::reset()
Line
Count
Source
175
3.46k
  void reset() {
176
3.46k
    release();
177
3.46k
    Obj = nullptr;
178
3.46k
  }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::reset()
Line
Count
Source
175
3.46k
  void reset() {
176
3.46k
    release();
177
3.46k
    Obj = nullptr;
178
3.46k
  }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::reset()
Line
Count
Source
175
3.46k
  void reset() {
176
3.46k
    release();
177
3.46k
    Obj = nullptr;
178
3.46k
  }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::reset()
Line
Count
Source
175
3.63k
  void reset() {
176
3.63k
    release();
177
3.63k
    Obj = nullptr;
178
3.63k
  }
179
180
14.3k
  void resetWithoutRelease() { Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::FileManager>::resetWithoutRelease()
Line
Count
Source
180
7
  void resetWithoutRelease() { Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::resetWithoutRelease()
Line
Count
Source
180
7
  void resetWithoutRelease() { Obj = nullptr; }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::resetWithoutRelease()
Line
Count
Source
180
14.3k
  void resetWithoutRelease() { Obj = nullptr; }
181
182
private:
183
38.1M
  void retain() {
184
38.1M
    if (Obj)
185
36.7M
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
38.1M
  }
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::retain()
Line
Count
Source
183
388k
  void retain() {
184
388k
    if (Obj)
185
388k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
388k
  }
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::retain()
Line
Count
Source
183
326k
  void retain() {
184
326k
    if (Obj)
185
326k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
326k
  }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::retain()
Line
Count
Source
183
307k
  void retain() {
184
307k
    if (Obj)
185
282k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
307k
  }
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::retain()
Line
Count
Source
183
45.1k
  void retain() {
184
45.1k
    if (Obj)
185
45.1k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
45.1k
  }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::retain()
Line
Count
Source
183
60.8k
  void retain() {
184
60.8k
    if (Obj)
185
59.9k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
60.8k
  }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::retain()
Line
Count
Source
183
70.9k
  void retain() {
184
70.9k
    if (Obj)
185
41.3k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
70.9k
  }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::retain()
Line
Count
Source
183
48.0k
  void retain() {
184
48.0k
    if (Obj)
185
47.9k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
48.0k
  }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::retain()
Line
Count
Source
183
12.4k
  void retain() {
184
12.4k
    if (Obj)
185
9.02k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
12.4k
  }
llvm::IntrusiveRefCntPtr<clang::FileManager>::retain()
Line
Count
Source
183
57.5k
  void retain() {
184
57.5k
    if (Obj)
185
53.9k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
57.5k
  }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::retain()
Line
Count
Source
183
52.1k
  void retain() {
184
52.1k
    if (Obj)
185
48.5k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
52.1k
  }
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::retain()
Line
Count
Source
183
50.4k
  void retain() {
184
50.4k
    if (Obj)
185
50.4k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
50.4k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::retain()
Line
Count
Source
183
5.09k
  void retain() {
184
5.09k
    if (Obj)
185
5.06k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
5.09k
  }
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::retain()
Line
Count
Source
183
169k
  void retain() {
184
169k
    if (Obj)
185
169k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
169k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::retain()
Line
Count
Source
183
47
  void retain() {
184
47
    if (Obj)
185
47
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
47
  }
ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtr<(anonymous namespace)::ChainedIncludesSource>::retain()
Line
Count
Source
183
23
  void retain() {
184
23
    if (Obj)
185
23
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
23
  }
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::retain()
Line
Count
Source
183
5.03k
  void retain() {
184
5.03k
    if (Obj)
185
5.03k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
5.03k
  }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::retain()
Line
Count
Source
183
31.6M
  void retain() {
184
31.6M
    if (Obj)
185
30.4M
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
31.6M
  }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::retain()
Line
Count
Source
183
2.66M
  void retain() {
184
2.66M
    if (Obj)
185
2.66M
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
2.66M
  }
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::retain()
Line
Count
Source
183
24.3k
  void retain() {
184
24.3k
    if (Obj)
185
24.3k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
24.3k
  }
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::retain()
Line
Count
Source
183
640k
  void retain() {
184
640k
    if (Obj)
185
640k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
640k
  }
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::retain()
Line
Count
Source
183
23.9k
  void retain() {
184
23.9k
    if (Obj)
185
23.9k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
23.9k
  }
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::retain()
Line
Count
Source
183
2.58k
  void retain() {
184
2.58k
    if (Obj)
185
2.58k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
2.58k
  }
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::retain()
Line
Count
Source
183
2.62k
  void retain() {
184
2.62k
    if (Obj)
185
2.62k
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
2.62k
  }
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::retain()
Line
Count
Source
183
1.59M
  void retain() {
184
1.59M
    if (Obj)
185
1.47M
      IntrusiveRefCntPtrInfo<T>::retain(Obj);
186
1.59M
  }
187
188
44.2M
  void release() {
189
44.2M
    if (Obj)
190
33.2M
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
44.2M
  }
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::release()
Line
Count
Source
188
526k
  void release() {
189
526k
    if (Obj)
190
253k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
526k
  }
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::release()
Line
Count
Source
188
495k
  void release() {
189
495k
    if (Obj)
190
345k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
495k
  }
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::release()
Line
Count
Source
188
490k
  void release() {
189
490k
    if (Obj)
190
312k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
490k
  }
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::release()
Line
Count
Source
188
45.1k
  void release() {
189
45.1k
    if (Obj)
190
45.1k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
45.1k
  }
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::release()
Line
Count
Source
188
93.6k
  void release() {
189
93.6k
    if (Obj)
190
45.5k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
93.6k
  }
llvm::IntrusiveRefCntPtr<clang::ASTContext>::release()
Line
Count
Source
188
107k
  void release() {
189
107k
    if (Obj)
190
32.6k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
107k
  }
llvm::IntrusiveRefCntPtr<clang::FileManager>::release()
Line
Count
Source
188
91.8k
  void release() {
189
91.8k
    if (Obj)
190
39.5k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
91.8k
  }
llvm::IntrusiveRefCntPtr<clang::SourceManager>::release()
Line
Count
Source
188
88.3k
  void release() {
189
88.3k
    if (Obj)
190
34.1k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
88.3k
  }
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::release()
Line
Count
Source
188
38.9k
  void release() {
189
38.9k
    if (Obj)
190
35.9k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
38.9k
  }
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::release()
Line
Count
Source
188
110k
  void release() {
189
110k
    if (Obj)
190
33.5k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
110k
  }
llvm::IntrusiveRefCntPtr<clang::ASTReader>::release()
Line
Count
Source
188
51.0k
  void release() {
189
51.0k
    if (Obj)
190
8.97k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
51.0k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::release()
Line
Count
Source
188
39.1k
  void release() {
189
39.1k
    if (Obj)
190
5.01k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
39.1k
  }
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::release()
Line
Count
Source
188
156k
  void release() {
189
156k
    if (Obj)
190
155k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
156k
  }
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::release()
Line
Count
Source
188
30.0k
  void release() {
189
30.0k
    if (Obj)
190
70
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
30.0k
  }
ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtr<(anonymous namespace)::ChainedIncludesSource>::release()
Line
Count
Source
188
23
  void release() {
189
23
    if (Obj)
190
0
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
23
  }
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::release()
Line
Count
Source
188
5.03k
  void release() {
189
5.03k
    if (Obj)
190
4.97k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
5.03k
  }
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::release()
Line
Count
Source
188
3.19M
  void release() {
189
3.19M
    if (Obj)
190
1.47M
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
3.19M
  }
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::release()
Line
Count
Source
188
34.9M
  void release() {
189
34.9M
    if (Obj)
190
27.0M
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
34.9M
  }
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::release()
Line
Count
Source
188
3.09M
  void release() {
189
3.09M
    if (Obj)
190
2.66M
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
3.09M
  }
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::release()
Line
Count
Source
188
640k
  void release() {
189
640k
    if (Obj)
190
640k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
640k
  }
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::release()
Line
Count
Source
188
24.3k
  void release() {
189
24.3k
    if (Obj)
190
24.3k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
24.3k
  }
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::release()
Line
Count
Source
188
23.9k
  void release() {
189
23.9k
    if (Obj)
190
23.9k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
23.9k
  }
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::release()
Line
Count
Source
188
2.58k
  void release() {
189
2.58k
    if (Obj)
190
2.58k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
2.58k
  }
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::release()
Line
Count
Source
188
2.62k
  void release() {
189
2.62k
    if (Obj)
190
2.62k
      IntrusiveRefCntPtrInfo<T>::release(Obj);
191
2.62k
  }
192
193
  template <typename X> friend class IntrusiveRefCntPtr;
194
};
195
196
template <class T, class U>
197
inline bool operator==(const IntrusiveRefCntPtr<T> &A,
198
1.05M
                       const IntrusiveRefCntPtr<U> &B) {
199
1.05M
  return A.get() == B.get();
200
1.05M
}
bool llvm::operator==<clang::vfs::FileSystem, clang::vfs::FileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&, llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&)
Line
Count
Source
198
317
                       const IntrusiveRefCntPtr<U> &B) {
199
317
  return A.get() == B.get();
200
317
}
bool llvm::operator==<clang::ento::ProgramState const, clang::ento::ProgramState const>(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> const&, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> const&)
Line
Count
Source
198
1.05M
                       const IntrusiveRefCntPtr<U> &B) {
199
1.05M
  return A.get() == B.get();
200
1.05M
}
201
202
template <class T, class U>
203
inline bool operator!=(const IntrusiveRefCntPtr<T> &A,
204
238k
                       const IntrusiveRefCntPtr<U> &B) {
205
238k
  return A.get() != B.get();
206
238k
}
bool llvm::operator!=<clang::vfs::FileSystem, clang::vfs::FileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&, llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&)
Line
Count
Source
204
247
                       const IntrusiveRefCntPtr<U> &B) {
205
247
  return A.get() != B.get();
206
247
}
bool llvm::operator!=<clang::ento::ProgramState const, clang::ento::ProgramState const>(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> const&, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> const&)
Line
Count
Source
204
237k
                       const IntrusiveRefCntPtr<U> &B) {
205
237k
  return A.get() != B.get();
206
237k
}
207
208
template <class T, class U>
209
inline bool operator==(const IntrusiveRefCntPtr<T> &A, U *B) {
210
  return A.get() == B;
211
}
212
213
template <class T, class U>
214
inline bool operator!=(const IntrusiveRefCntPtr<T> &A, U *B) {
215
  return A.get() != B;
216
}
217
218
template <class T, class U>
219
inline bool operator==(T *A, const IntrusiveRefCntPtr<U> &B) {
220
  return A == B.get();
221
}
222
223
template <class T, class U>
224
inline bool operator!=(T *A, const IntrusiveRefCntPtr<U> &B) {
225
  return A != B.get();
226
}
227
228
template <class T>
229
295k
bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) {
230
295k
  return !B;
231
295k
}
bool llvm::operator==<clang::DiagnosticsEngine>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> const&)
Line
Count
Source
229
38.4k
bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) {
230
38.4k
  return !B;
231
38.4k
}
bool llvm::operator==<clang::TargetInfo>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::TargetInfo> const&)
Line
Count
Source
229
47.5k
bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) {
230
47.5k
  return !B;
231
47.5k
}
bool llvm::operator==<clang::vfs::FileSystem>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&)
Line
Count
Source
229
36.2k
bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) {
230
36.2k
  return !B;
231
36.2k
}
bool llvm::operator==<clang::FileManager>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::FileManager> const&)
Line
Count
Source
229
44.5k
bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) {
230
44.5k
  return !B;
231
44.5k
}
bool llvm::operator==<clang::SourceManager>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::SourceManager> const&)
Line
Count
Source
229
83.3k
bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) {
230
83.3k
  return !B;
231
83.3k
}
bool llvm::operator==<clang::ASTContext>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::ASTContext> const&)
Line
Count
Source
229
45.3k
bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) {
230
45.3k
  return !B;
231
45.3k
}
232
233
template <class T>
234
295k
bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
235
295k
  return B == A;
236
295k
}
bool llvm::operator==<clang::DiagnosticsEngine>(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> const&, std::nullptr_t)
Line
Count
Source
234
38.4k
bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
235
38.4k
  return B == A;
236
38.4k
}
bool llvm::operator==<clang::TargetInfo>(llvm::IntrusiveRefCntPtr<clang::TargetInfo> const&, std::nullptr_t)
Line
Count
Source
234
47.5k
bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
235
47.5k
  return B == A;
236
47.5k
}
bool llvm::operator==<clang::vfs::FileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&, std::nullptr_t)
Line
Count
Source
234
36.2k
bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
235
36.2k
  return B == A;
236
36.2k
}
bool llvm::operator==<clang::FileManager>(llvm::IntrusiveRefCntPtr<clang::FileManager> const&, std::nullptr_t)
Line
Count
Source
234
44.5k
bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
235
44.5k
  return B == A;
236
44.5k
}
bool llvm::operator==<clang::SourceManager>(llvm::IntrusiveRefCntPtr<clang::SourceManager> const&, std::nullptr_t)
Line
Count
Source
234
83.3k
bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
235
83.3k
  return B == A;
236
83.3k
}
bool llvm::operator==<clang::ASTContext>(llvm::IntrusiveRefCntPtr<clang::ASTContext> const&, std::nullptr_t)
Line
Count
Source
234
45.3k
bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
235
45.3k
  return B == A;
236
45.3k
}
237
238
template <class T>
239
bool operator!=(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) {
240
  return !(A == B);
241
}
242
243
template <class T>
244
295k
bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
245
295k
  return !(A == B);
246
295k
}
bool llvm::operator!=<clang::DiagnosticsEngine>(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> const&, std::nullptr_t)
Line
Count
Source
244
38.4k
bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
245
38.4k
  return !(A == B);
246
38.4k
}
bool llvm::operator!=<clang::TargetInfo>(llvm::IntrusiveRefCntPtr<clang::TargetInfo> const&, std::nullptr_t)
Line
Count
Source
244
47.5k
bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
245
47.5k
  return !(A == B);
246
47.5k
}
bool llvm::operator!=<clang::vfs::FileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&, std::nullptr_t)
Line
Count
Source
244
36.2k
bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
245
36.2k
  return !(A == B);
246
36.2k
}
bool llvm::operator!=<clang::FileManager>(llvm::IntrusiveRefCntPtr<clang::FileManager> const&, std::nullptr_t)
Line
Count
Source
244
44.5k
bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
245
44.5k
  return !(A == B);
246
44.5k
}
bool llvm::operator!=<clang::SourceManager>(llvm::IntrusiveRefCntPtr<clang::SourceManager> const&, std::nullptr_t)
Line
Count
Source
244
83.3k
bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
245
83.3k
  return !(A == B);
246
83.3k
}
bool llvm::operator!=<clang::ASTContext>(llvm::IntrusiveRefCntPtr<clang::ASTContext> const&, std::nullptr_t)
Line
Count
Source
244
45.3k
bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
245
45.3k
  return !(A == B);
246
45.3k
}
247
248
// Make IntrusiveRefCntPtr work with dyn_cast, isa, and the other idioms from
249
// Casting.h.
250
template <typename From> struct simplify_type;
251
252
template <class T> struct simplify_type<IntrusiveRefCntPtr<T>> {
253
  using SimpleType = T *;
254
255
  static SimpleType getSimplifiedValue(IntrusiveRefCntPtr<T> &Val) {
256
    return Val.get();
257
  }
258
};
259
260
template <class T> struct simplify_type<const IntrusiveRefCntPtr<T>> {
261
  using SimpleType = /*const*/ T *;
262
263
  static SimpleType getSimplifiedValue(const IntrusiveRefCntPtr<T> &Val) {
264
    return Val.get();
265
  }
266
};
267
268
} // end namespace llvm
269
270
#endif // LLVM_ADT_INTRUSIVEREFCNTPTR_H