/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/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 | 728k | RefCountedBase() = default; llvm::RefCountedBase<clang::ASTContext>::RefCountedBase() Line | Count | Source | 75 | 29.6k | RefCountedBase() = default; |
llvm::RefCountedBase<clang::AnalyzerOptions>::RefCountedBase() Line | Count | Source | 75 | 43.6k | RefCountedBase() = default; |
llvm::RefCountedBase<clang::DiagnosticOptions>::RefCountedBase() Line | Count | Source | 75 | 139k | RefCountedBase() = default; |
llvm::RefCountedBase<clang::DiagnosticsEngine>::RefCountedBase() Line | Count | Source | 75 | 132k | RefCountedBase() = default; |
llvm::RefCountedBase<clang::DiagnosticIDs>::RefCountedBase() Line | Count | Source | 75 | 129k | RefCountedBase() = default; |
llvm::RefCountedBase<clang::FileManager>::RefCountedBase() Line | Count | Source | 75 | 101k | RefCountedBase() = default; |
llvm::RefCountedBase<clang::SourceManager>::RefCountedBase() Line | Count | Source | 75 | 65.9k | RefCountedBase() = default; |
llvm::RefCountedBase<clang::TargetInfo>::RefCountedBase() Line | Count | Source | 75 | 40.2k | RefCountedBase() = default; |
llvm::RefCountedBase<clang::MemoryBufferCache>::RefCountedBase() Line | Count | Source | 75 | 40.2k | RefCountedBase() = default; |
llvm::RefCountedBase<clang::ExternalASTSource>::RefCountedBase() Line | Count | Source | 75 | 6.13k | RefCountedBase() = default; |
|
76 | 4.08k | RefCountedBase(const RefCountedBase &) {} |
77 | | |
78 | 1.08M | void Retain() const { ++RefCount; } llvm::RefCountedBase<clang::SourceManager>::Retain() const Line | Count | Source | 78 | 42.7k | void Retain() const { ++RefCount; } |
llvm::RefCountedBase<clang::MemoryBufferCache>::Retain() const Line | Count | Source | 78 | 44.7k | void Retain() const { ++RefCount; } |
llvm::RefCountedBase<clang::FileManager>::Retain() const Line | Count | Source | 78 | 45.9k | void Retain() const { ++RefCount; } |
llvm::RefCountedBase<clang::TargetInfo>::Retain() const Line | Count | Source | 78 | 42.1k | void Retain() const { ++RefCount; } |
llvm::RefCountedBase<clang::ExternalASTSource>::Retain() const Line | Count | Source | 78 | 13.1k | void Retain() const { ++RefCount; } |
llvm::RefCountedBase<clang::DiagnosticsEngine>::Retain() const Line | Count | Source | 78 | 49.4k | void Retain() const { ++RefCount; } |
llvm::RefCountedBase<clang::ASTContext>::Retain() const Line | Count | Source | 78 | 31.7k | void Retain() const { ++RefCount; } |
llvm::RefCountedBase<clang::AnalyzerOptions>::Retain() const Line | Count | Source | 78 | 153k | void Retain() const { ++RefCount; } |
llvm::RefCountedBase<clang::DiagnosticIDs>::Retain() const Line | Count | Source | 78 | 306k | void Retain() const { ++RefCount; } |
llvm::RefCountedBase<clang::DiagnosticOptions>::Retain() const Line | Count | Source | 78 | 356k | void Retain() const { ++RefCount; } |
|
79 | | |
80 | 887k | void Release() const { |
81 | 887k | assert(RefCount > 0 && "Reference count is already zero."); |
82 | 887k | if (--RefCount == 0) |
83 | 391k | delete static_cast<const Derived *>(this); |
84 | 887k | } llvm::RefCountedBase<clang::DiagnosticOptions>::Release() const Line | Count | Source | 80 | 299k | void Release() const { | 81 | 299k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 299k | if (--RefCount == 0) | 83 | 124k | delete static_cast<const Derived *>(this); | 84 | 299k | } |
llvm::RefCountedBase<clang::FileManager>::Release() const Line | Count | Source | 80 | 26.9k | void Release() const { | 81 | 26.9k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 26.9k | if (--RefCount == 0) | 83 | 19.2k | delete static_cast<const Derived *>(this); | 84 | 26.9k | } |
llvm::RefCountedBase<clang::ExternalASTSource>::Release() const Line | Count | Source | 80 | 13.0k | void Release() const { | 81 | 13.0k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 13.0k | if (--RefCount == 0) | 83 | 5.94k | delete static_cast<const Derived *>(this); | 84 | 13.0k | } |
llvm::RefCountedBase<clang::TargetInfo>::Release() const Line | Count | Source | 80 | 23.1k | void Release() const { | 81 | 23.1k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 23.1k | if (--RefCount == 0) | 83 | 21.1k | delete static_cast<const Derived *>(this); | 84 | 23.1k | } |
llvm::RefCountedBase<clang::MemoryBufferCache>::Release() const Line | Count | Source | 80 | 25.6k | void Release() const { | 81 | 25.6k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 25.6k | if (--RefCount == 0) | 83 | 21.1k | delete static_cast<const Derived *>(this); | 84 | 25.6k | } |
llvm::RefCountedBase<clang::SourceManager>::Release() const Line | Count | Source | 80 | 23.7k | void Release() const { | 81 | 23.7k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 23.7k | if (--RefCount == 0) | 83 | 21.0k | delete static_cast<const Derived *>(this); | 84 | 23.7k | } |
llvm::RefCountedBase<clang::DiagnosticIDs>::Release() const Line | Count | Source | 80 | 287k | void Release() const { | 81 | 287k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 287k | if (--RefCount == 0) | 83 | 110k | delete static_cast<const Derived *>(this); | 84 | 287k | } |
llvm::RefCountedBase<clang::DiagnosticsEngine>::Release() const Line | Count | Source | 80 | 30.3k | void Release() const { | 81 | 30.3k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 30.3k | if (--RefCount == 0) | 83 | 22.6k | delete static_cast<const Derived *>(this); | 84 | 30.3k | } |
llvm::RefCountedBase<clang::ASTContext>::Release() const Line | Count | Source | 80 | 22.4k | void Release() const { | 81 | 22.4k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 22.4k | if (--RefCount == 0) | 83 | 20.3k | delete static_cast<const Derived *>(this); | 84 | 22.4k | } |
llvm::RefCountedBase<clang::AnalyzerOptions>::Release() const Line | Count | Source | 80 | 134k | void Release() const { | 81 | 134k | assert(RefCount > 0 && "Reference count is already zero."); | 82 | 134k | if (--RefCount == 0) | 83 | 24.6k | delete static_cast<const Derived *>(this); | 84 | 134k | } |
|
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 | 316k | ThreadSafeRefCountedBase() : RefCount(0) {} llvm::ThreadSafeRefCountedBase<clang::ast_matchers::internal::DynMatcherInterface>::ThreadSafeRefCountedBase() Line | Count | Source | 92 | 222k | ThreadSafeRefCountedBase() : RefCount(0) {} |
llvm::ThreadSafeRefCountedBase<clang::vfs::FileSystem>::ThreadSafeRefCountedBase() Line | Count | Source | 92 | 94.7k | ThreadSafeRefCountedBase() : RefCount(0) {} |
|
93 | | |
94 | | public: |
95 | 1.54M | void Retain() const { RefCount.fetch_add(1, std::memory_order_relaxed); } llvm::ThreadSafeRefCountedBase<clang::vfs::FileSystem>::Retain() const Line | Count | Source | 95 | 320k | void Retain() const { RefCount.fetch_add(1, std::memory_order_relaxed); } |
llvm::ThreadSafeRefCountedBase<clang::ast_matchers::internal::DynMatcherInterface>::Retain() const Line | Count | Source | 95 | 1.21M | void Retain() const { RefCount.fetch_add(1, std::memory_order_relaxed); } |
|
96 | | |
97 | 1.50M | void Release() const { |
98 | 1.50M | int NewRefCount = RefCount.fetch_sub(1, std::memory_order_acq_rel) - 1; |
99 | 1.50M | assert(NewRefCount >= 0 && "Reference count was already zero."); |
100 | 1.50M | if (NewRefCount == 0) |
101 | 296k | delete static_cast<const Derived *>(this); |
102 | 1.50M | } llvm::ThreadSafeRefCountedBase<clang::ast_matchers::internal::DynMatcherInterface>::Release() const Line | Count | Source | 97 | 1.21M | void Release() const { | 98 | 1.21M | int NewRefCount = RefCount.fetch_sub(1, std::memory_order_acq_rel) - 1; | 99 | 1.21M | assert(NewRefCount >= 0 && "Reference count was already zero."); | 100 | 1.21M | if (NewRefCount == 0) | 101 | 220k | delete static_cast<const Derived *>(this); | 102 | 1.21M | } |
llvm::ThreadSafeRefCountedBase<clang::vfs::FileSystem>::Release() const Line | Count | Source | 97 | 282k | void Release() const { | 98 | 282k | int NewRefCount = RefCount.fetch_sub(1, std::memory_order_acq_rel) - 1; | 99 | 282k | assert(NewRefCount >= 0 && "Reference count was already zero."); | 100 | 282k | if (NewRefCount == 0) | 101 | 75.6k | delete static_cast<const Derived *>(this); | 102 | 282k | } |
|
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 | 5.91M | static void retain(T *obj) { obj->Retain(); } llvm::IntrusiveRefCntPtrInfo<clang::ento::CallEvent const>::retain(clang::ento::CallEvent const*) Line | Count | Source | 126 | 352k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ento::ObjCMethodCall const>::retain(clang::ento::ObjCMethodCall const*) Line | Count | Source | 126 | 23.7k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXDestructorCall const>::retain(clang::ento::CXXDestructorCall const*) Line | Count | Source | 126 | 475 | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXConstructorCall const>::retain(clang::ento::CXXConstructorCall const*) Line | Count | Source | 126 | 18.5k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXAllocatorCall const>::retain(clang::ento::CXXAllocatorCall const*) Line | Count | Source | 126 | 299 | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::RopeRefCountString>::retain(clang::RopeRefCountString*) Line | Count | Source | 126 | 2.89M | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticOptions>::retain(clang::DiagnosticOptions*) Line | Count | Source | 126 | 356k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticIDs>::retain(clang::DiagnosticIDs*) Line | Count | Source | 126 | 306k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::vfs::FileSystem>::retain(clang::vfs::FileSystem*) Line | Count | Source | 126 | 289k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ast_matchers::internal::DynMatcherInterface>::retain(clang::ast_matchers::internal::DynMatcherInterface*) Line | Count | Source | 126 | 1.21M | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::AnalyzerOptions>::retain(clang::AnalyzerOptions*) Line | Count | Source | 126 | 153k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ASTContext>::retain(clang::ASTContext*) Line | Count | Source | 126 | 31.7k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticsEngine>::retain(clang::DiagnosticsEngine*) Line | Count | Source | 126 | 49.4k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::vfs::InMemoryFileSystem>::retain(clang::vfs::InMemoryFileSystem*) Line | Count | Source | 126 | 28.1k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::vfs::OverlayFileSystem>::retain(clang::vfs::OverlayFileSystem*) Line | Count | Source | 126 | 2.73k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ASTReader>::retain(clang::ASTReader*) Line | Count | Source | 126 | 7.15k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::TargetInfo>::retain(clang::TargetInfo*) Line | Count | Source | 126 | 42.1k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::FileManager>::retain(clang::FileManager*) Line | Count | Source | 126 | 45.9k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::SourceManager>::retain(clang::SourceManager*) Line | Count | Source | 126 | 42.7k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::MemoryBufferCache>::retain(clang::MemoryBufferCache*) Line | Count | Source | 126 | 44.7k | static void retain(T *obj) { obj->Retain(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ExternalASTSource>::retain(clang::ExternalASTSource*) Line | Count | Source | 126 | 3.52k | 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(); } |
|
127 | 5.67M | static void release(T *obj) { obj->Release(); } llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXAllocatorCall const>::release(clang::ento::CXXAllocatorCall const*) Line | Count | Source | 127 | 299 | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXConstructorCall const>::release(clang::ento::CXXConstructorCall const*) Line | Count | Source | 127 | 18.5k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ento::CXXDestructorCall const>::release(clang::ento::CXXDestructorCall const*) Line | Count | Source | 127 | 475 | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ento::ObjCMethodCall const>::release(clang::ento::ObjCMethodCall const*) Line | Count | Source | 127 | 23.7k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ento::CallEvent const>::release(clang::ento::CallEvent const*) Line | Count | Source | 127 | 352k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ast_matchers::internal::DynMatcherInterface>::release(clang::ast_matchers::internal::DynMatcherInterface*) Line | Count | Source | 127 | 1.21M | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::RopeRefCountString>::release(clang::RopeRefCountString*) Line | Count | Source | 127 | 2.89M | static void release(T *obj) { obj->Release(); } |
Unexecuted instantiation: ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtrInfo<(anonymous namespace)::ChainedIncludesSource>::release((anonymous namespace)::ChainedIncludesSource*) llvm::IntrusiveRefCntPtrInfo<clang::ExternalSemaSource>::release(clang::ExternalSemaSource*) Line | Count | Source | 127 | 70 | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ExternalASTSource>::release(clang::ExternalASTSource*) Line | Count | Source | 127 | 3.47k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ASTReader>::release(clang::ASTReader*) Line | Count | Source | 127 | 7.10k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::TargetInfo>::release(clang::TargetInfo*) Line | Count | Source | 127 | 23.1k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::MemoryBufferCache>::release(clang::MemoryBufferCache*) Line | Count | Source | 127 | 25.6k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::SourceManager>::release(clang::SourceManager*) Line | Count | Source | 127 | 23.7k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::FileManager>::release(clang::FileManager*) Line | Count | Source | 127 | 26.9k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::vfs::InMemoryFileSystem>::release(clang::vfs::InMemoryFileSystem*) Line | Count | Source | 127 | 28.1k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::vfs::OverlayFileSystem>::release(clang::vfs::OverlayFileSystem*) Line | Count | Source | 127 | 2.69k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticsEngine>::release(clang::DiagnosticsEngine*) Line | Count | Source | 127 | 30.3k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::ASTContext>::release(clang::ASTContext*) Line | Count | Source | 127 | 22.4k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticOptions>::release(clang::DiagnosticOptions*) Line | Count | Source | 127 | 299k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::DiagnosticIDs>::release(clang::DiagnosticIDs*) Line | Count | Source | 127 | 287k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::vfs::FileSystem>::release(clang::vfs::FileSystem*) Line | Count | Source | 127 | 251k | static void release(T *obj) { obj->Release(); } |
llvm::IntrusiveRefCntPtrInfo<clang::AnalyzerOptions>::release(clang::AnalyzerOptions*) Line | Count | Source | 127 | 134k | 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 | 775k | explicit IntrusiveRefCntPtr() = default; llvm::IntrusiveRefCntPtr<clang::TargetInfo>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 81.5k | explicit IntrusiveRefCntPtr() = default; |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 41.4k | explicit IntrusiveRefCntPtr() = default; |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 40.1k | explicit IntrusiveRefCntPtr() = default; |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 40.1k | explicit IntrusiveRefCntPtr() = default; |
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 40.1k | explicit IntrusiveRefCntPtr() = default; |
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 1.31k | explicit IntrusiveRefCntPtr() = default; |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 41.4k | explicit IntrusiveRefCntPtr() = default; |
llvm::IntrusiveRefCntPtr<clang::FileManager>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 41.4k | explicit IntrusiveRefCntPtr() = default; |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 41.4k | explicit IntrusiveRefCntPtr() = default; |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::IntrusiveRefCntPtr() Line | Count | Source | 142 | 406k | explicit IntrusiveRefCntPtr() = default; |
|
143 | 5.55M | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::IntrusiveRefCntPtr(clang::ento::CXXConstructorCall const*) Line | Count | Source | 143 | 18.5k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::IntrusiveRefCntPtr(clang::ento::ObjCMethodCall const*) Line | Count | Source | 143 | 23.7k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::IntrusiveRefCntPtr(clang::ast_matchers::internal::DynMatcherInterface*) Line | Count | Source | 143 | 231k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::IntrusiveRefCntPtr(clang::ento::ProgramState const*) Line | Count | Source | 143 | 2.01M | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr(clang::ExternalASTSource*) Line | Count | Source | 143 | 30.8k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::IntrusiveRefCntPtr(clang::AnalyzerOptions*) Line | Count | Source | 143 | 43.6k | 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::ExternalSemaSource>::IntrusiveRefCntPtr(clang::ExternalSemaSource*) Line | Count | Source | 143 | 24 | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::IntrusiveRefCntPtr(clang::MemoryBufferCache*) Line | Count | Source | 143 | 44.7k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::IntrusiveRefCntPtr(clang::SourceManager*) Line | Count | Source | 143 | 44.7k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::IntrusiveRefCntPtr(clang::FileManager*) Line | Count | Source | 143 | 47.9k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::IntrusiveRefCntPtr(clang::TargetInfo*) Line | Count | Source | 143 | 42.1k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::IntrusiveRefCntPtr(clang::ASTReader*) Line | Count | Source | 143 | 4.98k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::IntrusiveRefCntPtr(clang::ASTContext*) Line | Count | Source | 143 | 52.7k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::IntrusiveRefCntPtr(clang::vfs::OverlayFileSystem*) Line | Count | Source | 143 | 2.73k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::IntrusiveRefCntPtr(clang::vfs::InMemoryFileSystem*) Line | Count | Source | 143 | 28.1k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::IntrusiveRefCntPtr(clang::DiagnosticsEngine*) Line | Count | Source | 143 | 45.4k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::IntrusiveRefCntPtr(clang::RopeRefCountString*) Line | Count | Source | 143 | 1.91M | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::IntrusiveRefCntPtr(clang::ento::CallEvent const*) Line | Count | Source | 143 | 343k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::IntrusiveRefCntPtr(clang::ento::CXXDestructorCall const*) Line | Count | Source | 143 | 475 | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::IntrusiveRefCntPtr(clang::ento::CXXAllocatorCall const*) Line | Count | Source | 143 | 299 | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr(clang::vfs::FileSystem*) Line | Count | Source | 143 | 131k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::IntrusiveRefCntPtr(clang::DiagnosticIDs*) Line | Count | Source | 143 | 129k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::IntrusiveRefCntPtr(clang::DiagnosticOptions*) Line | Count | Source | 143 | 354k | IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } |
|
144 | 24.3M | IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); } llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::RopeRefCountString> const&) Line | Count | Source | 144 | 3.27M | 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 | 9.18k | 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 | 987k | 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 | 19.6M | IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions> const&) Line | Count | Source | 144 | 2.82k | IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ExternalASTSource> const&) Line | Count | Source | 144 | 3 | 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::AnalyzerOptions>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions> const&) Line | Count | Source | 144 | 110k | IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ASTReader> const&) Line | Count | Source | 144 | 5.28k | IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> const&) Line | Count | Source | 144 | 4.90k | IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&) Line | Count | Source | 144 | 195k | IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> const&) Line | Count | Source | 144 | 176k | IntrusiveRefCntPtr(const IntrusiveRefCntPtr &S) : Obj(S.Obj) { retain(); } |
|
145 | 5.62M | IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; } llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>&&) Line | Count | Source | 145 | 567 | 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 | 1.10k | 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 | 192k | IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; } |
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>&&) Line | Count | Source | 145 | 1.14M | IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>&&) Line | Count | Source | 145 | 132k | IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>&&) Line | Count | Source | 145 | 211k | 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 | 3.93M | IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; } |
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>&&) Line | Count | Source | 145 | 3.54k | IntrusiveRefCntPtr(IntrusiveRefCntPtr &&S) : Obj(S.Obj) { S.Obj = nullptr; } |
|
146 | | |
147 | | template <class X> |
148 | 70 | IntrusiveRefCntPtr(IntrusiveRefCntPtr<X> &&S) : Obj(S.get()) { |
149 | 70 | S.Obj = nullptr; |
150 | 70 | } llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>&&) Line | Count | Source | 148 | 47 | IntrusiveRefCntPtr(IntrusiveRefCntPtr<X> &&S) : Obj(S.get()) { | 149 | 47 | S.Obj = nullptr; | 150 | 47 | } |
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 | } |
|
151 | | |
152 | | template <class X> |
153 | 30.5k | IntrusiveRefCntPtr(const IntrusiveRefCntPtr<X> &S) : Obj(S.get()) { |
154 | 30.5k | retain(); |
155 | 30.5k | } llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::IntrusiveRefCntPtr<clang::ASTReader>(llvm::IntrusiveRefCntPtr<clang::ASTReader> const&) Line | Count | Source | 153 | 2.35k | IntrusiveRefCntPtr(const IntrusiveRefCntPtr<X> &S) : Obj(S.get()) { | 154 | 2.35k | retain(); | 155 | 2.35k | } |
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 | } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem> const&) Line | Count | Source | 153 | 28.1k | IntrusiveRefCntPtr(const IntrusiveRefCntPtr<X> &S) : Obj(S.get()) { | 154 | 28.1k | retain(); | 155 | 28.1k | } |
|
156 | | |
157 | 34.0M | ~IntrusiveRefCntPtr() { release(); } llvm::IntrusiveRefCntPtr<clang::ASTReader>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 32.4k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 75.1k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 571k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 419k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 299k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 2.73k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 28.1k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 475 | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 299 | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 18.5k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 352k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 23.7k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 1.41M | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 23.9M | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 6.33M | ~IntrusiveRefCntPtr() { release(); } |
ChainedIncludesSource.cpp:llvm::IntrusiveRefCntPtr<(anonymous namespace)::ChainedIncludesSource>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 23 | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 21.2k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 135k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 27.4k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 72.6k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 70.9k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 67.0k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 26.9k | ~IntrusiveRefCntPtr() { release(); } |
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::~IntrusiveRefCntPtr() Line | Count | Source | 157 | 85.6k | ~IntrusiveRefCntPtr() { release(); } |
|
158 | | |
159 | 5.57M | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { |
160 | 5.57M | swap(S); |
161 | 5.57M | return *this; |
162 | 5.57M | } llvm::IntrusiveRefCntPtr<clang::ASTReader>::operator=(llvm::IntrusiveRefCntPtr<clang::ASTReader>) Line | Count | Source | 159 | 5.62k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 5.62k | swap(S); | 161 | 5.62k | return *this; | 162 | 5.62k | } |
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::operator=(llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>) Line | Count | Source | 159 | 1.16k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 1.16k | swap(S); | 161 | 1.16k | return *this; | 162 | 1.16k | } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::operator=(llvm::IntrusiveRefCntPtr<clang::SourceManager>) Line | Count | Source | 159 | 44.0k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 44.0k | swap(S); | 161 | 44.0k | return *this; | 162 | 44.0k | } |
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::ento::ProgramState const>::operator=(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>) Line | Count | Source | 159 | 1.93M | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 1.93M | swap(S); | 161 | 1.93M | return *this; | 162 | 1.93M | } |
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::operator=(llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>) Line | Count | Source | 159 | 3.28M | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 3.28M | swap(S); | 161 | 3.28M | return *this; | 162 | 3.28M | } |
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::operator=(llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>) Line | Count | Source | 159 | 5.30k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 5.30k | swap(S); | 161 | 5.30k | return *this; | 162 | 5.30k | } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::operator=(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>) Line | Count | Source | 159 | 110k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 110k | swap(S); | 161 | 110k | return *this; | 162 | 110k | } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::operator=(llvm::IntrusiveRefCntPtr<clang::ASTContext>) Line | Count | Source | 159 | 52.7k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 52.7k | swap(S); | 161 | 52.7k | return *this; | 162 | 52.7k | } |
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::operator=(llvm::IntrusiveRefCntPtr<clang::TargetInfo>) Line | Count | Source | 159 | 42.1k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 42.1k | swap(S); | 161 | 42.1k | return *this; | 162 | 42.1k | } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::operator=(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>) Line | Count | Source | 159 | 42.3k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 42.3k | swap(S); | 161 | 42.3k | return *this; | 162 | 42.3k | } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::operator=(llvm::IntrusiveRefCntPtr<clang::FileManager>) Line | Count | Source | 159 | 44.8k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 44.8k | swap(S); | 161 | 44.8k | return *this; | 162 | 44.8k | } |
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::operator=(llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>) Line | Count | Source | 159 | 3.54k | IntrusiveRefCntPtr &operator=(IntrusiveRefCntPtr S) { | 160 | 3.54k | swap(S); | 161 | 3.54k | return *this; | 162 | 3.54k | } |
|
163 | | |
164 | 4.89M | T &operator*() const { return *Obj; } llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::operator*() const Line | Count | Source | 164 | 23 | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::operator*() const Line | Count | Source | 164 | 369k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::operator*() const Line | Count | Source | 164 | 602k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::operator*() const Line | Count | Source | 164 | 1.76M | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::operator*() const Line | Count | Source | 164 | 618k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::operator*() const Line | Count | Source | 164 | 32.8k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::operator*() const Line | Count | Source | 164 | 425k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::operator*() const Line | Count | Source | 164 | 9 | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::operator*() const Line | Count | Source | 164 | 88.5k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::operator*() const Line | Count | Source | 164 | 288k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::operator*() const Line | Count | Source | 164 | 184k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::operator*() const Line | Count | Source | 164 | 1.00k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::operator*() const Line | Count | Source | 164 | 52.0k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::operator*() const Line | Count | Source | 164 | 396k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::operator*() const Line | Count | Source | 164 | 33.1k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::operator*() const Line | Count | Source | 164 | 38.5k | T &operator*() const { return *Obj; } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::operator*() const Line | Count | Source | 164 | 444 | T &operator*() const { return *Obj; } |
|
165 | 71.7M | T *operator->() const { return Obj; } llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::operator->() const Line | Count | Source | 165 | 7.62k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::operator->() const Line | Count | Source | 165 | 13.0k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::operator->() const Line | Count | Source | 165 | 65.3k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::operator->() const Line | Count | Source | 165 | 9.11M | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::operator->() const Line | Count | Source | 165 | 7.73M | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::operator->() const Line | Count | Source | 165 | 244k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::operator->() const Line | Count | Source | 165 | 1 | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::operator->() const Line | Count | Source | 165 | 472k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::operator->() const Line | Count | Source | 165 | 113 | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::operator->() const Line | Count | Source | 165 | 33.1k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::operator->() const Line | Count | Source | 165 | 337 | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::operator->() const Line | Count | Source | 165 | 294 | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::operator->() const Line | Count | Source | 165 | 21.0k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::operator->() const Line | Count | Source | 165 | 18.3k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::operator->() const Line | Count | Source | 165 | 2.64M | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::operator->() const Line | Count | Source | 165 | 51.0M | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::operator->() const Line | Count | Source | 165 | 146k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::operator->() const Line | Count | Source | 165 | 122k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::operator->() const Line | Count | Source | 165 | 28.2k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::operator->() const Line | Count | Source | 165 | 57.3k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::operator->() const Line | Count | Source | 165 | 121 | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::operator->() const Line | Count | Source | 165 | 3.10k | T *operator->() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::operator->() const Line | Count | Source | 165 | 10.1k | T *operator->() const { return Obj; } |
|
166 | 58.4M | T *get() const { return Obj; } llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::get() const Line | Count | Source | 166 | 12.2k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::get() const Line | Count | Source | 166 | 138 | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::get() const Line | Count | Source | 166 | 4.07k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::get() const Line | Count | Source | 166 | 2 | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::get() const Line | Count | Source | 166 | 1.17k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::get() const Line | Count | Source | 166 | 37.0k | 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 | 61.1k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::get() const Line | Count | Source | 166 | 19.1k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::get() const Line | Count | Source | 166 | 53.7M | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::get() const Line | Count | Source | 166 | 28.4k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::get() const Line | Count | Source | 166 | 2.72k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::get() const Line | Count | Source | 166 | 2.33k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::get() const Line | Count | Source | 166 | 3.44k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::get() const Line | Count | Source | 166 | 1.59k | 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::DiagnosticOptions>::get() const Line | Count | Source | 166 | 23.2k | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::get() const Line | Count | Source | 166 | 57 | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::get() const Line | Count | Source | 166 | 4.45M | T *get() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::get() const Line | Count | Source | 166 | 1.86k | T *get() const { return Obj; } |
|
167 | 2.79M | explicit operator bool() const { return Obj; } llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::operator bool() const Line | Count | Source | 167 | 8.88k | explicit operator bool() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::operator bool() const Line | Count | Source | 167 | 1.71M | explicit operator bool() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::operator bool() const Line | Count | Source | 167 | 29.4k | explicit operator bool() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::operator bool() const Line | Count | Source | 167 | 51.1k | explicit operator bool() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::operator bool() const Line | Count | Source | 167 | 135k | explicit operator bool() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::operator bool() const Line | Count | Source | 167 | 207k | explicit operator bool() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::operator bool() const Line | Count | Source | 167 | 42.2k | explicit operator bool() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::operator bool() const Line | Count | Source | 167 | 526k | explicit operator bool() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::operator bool() const Line | Count | Source | 167 | 36.1k | explicit operator bool() const { return Obj; } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::operator bool() const Line | Count | Source | 167 | 44.0k | explicit operator bool() const { return Obj; } |
|
168 | | |
169 | 5.57M | void swap(IntrusiveRefCntPtr &other) { |
170 | 5.57M | T *tmp = other.Obj; |
171 | 5.57M | other.Obj = Obj; |
172 | 5.57M | Obj = tmp; |
173 | 5.57M | } llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::swap(llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>&) Line | Count | Source | 169 | 5.30k | void swap(IntrusiveRefCntPtr &other) { | 170 | 5.30k | T *tmp = other.Obj; | 171 | 5.30k | other.Obj = Obj; | 172 | 5.30k | Obj = tmp; | 173 | 5.30k | } |
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::swap(llvm::IntrusiveRefCntPtr<clang::TargetInfo>&) Line | Count | Source | 169 | 42.1k | void swap(IntrusiveRefCntPtr &other) { | 170 | 42.1k | T *tmp = other.Obj; | 171 | 42.1k | other.Obj = Obj; | 172 | 42.1k | Obj = tmp; | 173 | 42.1k | } |
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::swap(llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>&) Line | Count | Source | 169 | 3.28M | void swap(IntrusiveRefCntPtr &other) { | 170 | 3.28M | T *tmp = other.Obj; | 171 | 3.28M | other.Obj = Obj; | 172 | 3.28M | Obj = tmp; | 173 | 3.28M | } |
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::ExternalASTSource>::swap(llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>&) Line | Count | Source | 169 | 3.54k | void swap(IntrusiveRefCntPtr &other) { | 170 | 3.54k | T *tmp = other.Obj; | 171 | 3.54k | other.Obj = Obj; | 172 | 3.54k | Obj = tmp; | 173 | 3.54k | } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::swap(llvm::IntrusiveRefCntPtr<clang::ASTReader>&) Line | Count | Source | 169 | 5.62k | void swap(IntrusiveRefCntPtr &other) { | 170 | 5.62k | T *tmp = other.Obj; | 171 | 5.62k | other.Obj = Obj; | 172 | 5.62k | Obj = tmp; | 173 | 5.62k | } |
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::swap(llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>&) Line | Count | Source | 169 | 1.16k | void swap(IntrusiveRefCntPtr &other) { | 170 | 1.16k | T *tmp = other.Obj; | 171 | 1.16k | other.Obj = Obj; | 172 | 1.16k | Obj = tmp; | 173 | 1.16k | } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::swap(llvm::IntrusiveRefCntPtr<clang::SourceManager>&) Line | Count | Source | 169 | 44.0k | void swap(IntrusiveRefCntPtr &other) { | 170 | 44.0k | T *tmp = other.Obj; | 171 | 44.0k | other.Obj = Obj; | 172 | 44.0k | Obj = tmp; | 173 | 44.0k | } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::swap(llvm::IntrusiveRefCntPtr<clang::FileManager>&) Line | Count | Source | 169 | 44.8k | void swap(IntrusiveRefCntPtr &other) { | 170 | 44.8k | T *tmp = other.Obj; | 171 | 44.8k | other.Obj = Obj; | 172 | 44.8k | Obj = tmp; | 173 | 44.8k | } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::swap(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>&) Line | Count | Source | 169 | 110k | void swap(IntrusiveRefCntPtr &other) { | 170 | 110k | T *tmp = other.Obj; | 171 | 110k | other.Obj = Obj; | 172 | 110k | Obj = tmp; | 173 | 110k | } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::swap(llvm::IntrusiveRefCntPtr<clang::ASTContext>&) Line | Count | Source | 169 | 52.7k | void swap(IntrusiveRefCntPtr &other) { | 170 | 52.7k | T *tmp = other.Obj; | 171 | 52.7k | other.Obj = Obj; | 172 | 52.7k | Obj = tmp; | 173 | 52.7k | } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::swap(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>&) Line | Count | Source | 169 | 1.93M | void swap(IntrusiveRefCntPtr &other) { | 170 | 1.93M | T *tmp = other.Obj; | 171 | 1.93M | other.Obj = Obj; | 172 | 1.93M | Obj = tmp; | 173 | 1.93M | } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::swap(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>&) Line | Count | Source | 169 | 42.3k | void swap(IntrusiveRefCntPtr &other) { | 170 | 42.3k | T *tmp = other.Obj; | 171 | 42.3k | other.Obj = Obj; | 172 | 42.3k | Obj = tmp; | 173 | 42.3k | } |
|
174 | | |
175 | 8.20k | void reset() { |
176 | 8.20k | release(); |
177 | 8.20k | Obj = nullptr; |
178 | 8.20k | } llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::reset() Line | Count | Source | 175 | 1.99k | void reset() { | 176 | 1.99k | release(); | 177 | 1.99k | Obj = nullptr; | 178 | 1.99k | } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::reset() Line | Count | Source | 175 | 1.81k | void reset() { | 176 | 1.81k | release(); | 177 | 1.81k | Obj = nullptr; | 178 | 1.81k | } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::reset() Line | Count | Source | 175 | 1.81k | void reset() { | 176 | 1.81k | release(); | 177 | 1.81k | Obj = nullptr; | 178 | 1.81k | } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::reset() Line | Count | Source | 175 | 758 | void reset() { | 176 | 758 | release(); | 177 | 758 | Obj = nullptr; | 178 | 758 | } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::reset() Line | Count | Source | 175 | 1.81k | void reset() { | 176 | 1.81k | release(); | 177 | 1.81k | Obj = nullptr; | 178 | 1.81k | } |
|
179 | | |
180 | 18.9k | void resetWithoutRelease() { Obj = nullptr; } llvm::IntrusiveRefCntPtr<clang::FileManager>::resetWithoutRelease() Line | Count | Source | 180 | 7 | void resetWithoutRelease() { Obj = nullptr; } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::resetWithoutRelease() Line | Count | Source | 180 | 18.9k | void resetWithoutRelease() { Obj = nullptr; } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::resetWithoutRelease() Line | Count | Source | 180 | 7 | void resetWithoutRelease() { Obj = nullptr; } |
|
181 | | |
182 | | private: |
183 | 29.9M | void retain() { |
184 | 29.9M | if (Obj) |
185 | 26.7M | IntrusiveRefCntPtrInfo<T>::retain(Obj); |
186 | 29.9M | } 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::InMemoryFileSystem>::retain() Line | Count | Source | 183 | 28.1k | void retain() { | 184 | 28.1k | if (Obj) | 185 | 28.1k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 28.1k | } |
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::retain() Line | Count | Source | 183 | 2.73k | void retain() { | 184 | 2.73k | if (Obj) | 185 | 2.73k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 2.73k | } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::retain() Line | Count | Source | 183 | 10.2k | void retain() { | 184 | 10.2k | if (Obj) | 185 | 7.15k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 10.2k | } |
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::retain() Line | Count | Source | 183 | 42.1k | void retain() { | 184 | 42.1k | if (Obj) | 185 | 42.1k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 42.1k | } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::retain() Line | Count | Source | 183 | 47.9k | void retain() { | 184 | 47.9k | if (Obj) | 185 | 45.9k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 47.9k | } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::retain() Line | Count | Source | 183 | 44.7k | void retain() { | 184 | 44.7k | if (Obj) | 185 | 42.7k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 44.7k | } |
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::retain() Line | Count | Source | 183 | 44.7k | void retain() { | 184 | 44.7k | if (Obj) | 185 | 44.7k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 44.7k | } |
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::retain() Line | Count | Source | 183 | 33.2k | void retain() { | 184 | 33.2k | if (Obj) | 185 | 3.52k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 33.2k | } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::retain() Line | Count | Source | 183 | 50.3k | void retain() { | 184 | 50.3k | if (Obj) | 185 | 49.4k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 50.3k | } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::retain() Line | Count | Source | 183 | 52.7k | void retain() { | 184 | 52.7k | if (Obj) | 185 | 31.7k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 52.7k | } |
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::retain() Line | Count | Source | 183 | 153k | void retain() { | 184 | 153k | if (Obj) | 185 | 153k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 153k | } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::retain() Line | Count | Source | 183 | 358k | void retain() { | 184 | 358k | if (Obj) | 185 | 289k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 358k | } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::retain() Line | Count | Source | 183 | 306k | void retain() { | 184 | 306k | if (Obj) | 185 | 306k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 306k | } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::retain() Line | Count | Source | 183 | 356k | void retain() { | 184 | 356k | if (Obj) | 185 | 356k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 356k | } |
llvm::IntrusiveRefCntPtr<clang::ExternalSemaSource>::retain() Line | Count | Source | 183 | 47 | void retain() { | 184 | 47 | if (Obj) | 185 | 47 | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 47 | } |
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::retain() Line | Count | Source | 183 | 5.19M | void retain() { | 184 | 5.19M | if (Obj) | 185 | 2.89M | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 5.19M | } |
llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::retain() Line | Count | Source | 183 | 1.21M | void retain() { | 184 | 1.21M | if (Obj) | 185 | 1.21M | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 1.21M | } |
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::retain() Line | Count | Source | 183 | 352k | void retain() { | 184 | 352k | if (Obj) | 185 | 352k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 352k | } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::retain() Line | Count | Source | 183 | 18.5k | void retain() { | 184 | 18.5k | if (Obj) | 185 | 18.5k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 18.5k | } |
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::retain() Line | Count | Source | 183 | 23.7k | void retain() { | 184 | 23.7k | if (Obj) | 185 | 23.7k | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 23.7k | } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::retain() Line | Count | Source | 183 | 475 | void retain() { | 184 | 475 | if (Obj) | 185 | 475 | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 475 | } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::retain() Line | Count | Source | 183 | 299 | void retain() { | 184 | 299 | if (Obj) | 185 | 299 | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 299 | } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::retain() Line | Count | Source | 183 | 21.6M | void retain() { | 184 | 21.6M | if (Obj) | 185 | 20.8M | IntrusiveRefCntPtrInfo<T>::retain(Obj); | 186 | 21.6M | } |
|
187 | | |
188 | 34.0M | void release() { |
189 | 34.0M | if (Obj) |
190 | 24.5M | IntrusiveRefCntPtrInfo<T>::release(Obj); |
191 | 34.0M | } llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::release() Line | Count | Source | 188 | 1.41M | void release() { | 189 | 1.41M | if (Obj) | 190 | 1.21M | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 1.41M | } |
llvm::IntrusiveRefCntPtr<clang::ASTReader>::release() Line | Count | Source | 188 | 34.2k | void release() { | 189 | 34.2k | if (Obj) | 190 | 7.10k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 34.2k | } |
llvm::IntrusiveRefCntPtr<clang::ento::CallEvent const>::release() Line | Count | Source | 188 | 352k | void release() { | 189 | 352k | if (Obj) | 190 | 352k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 352k | } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions>::release() Line | Count | Source | 188 | 299k | void release() { | 189 | 299k | if (Obj) | 190 | 299k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 299k | } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs>::release() Line | Count | Source | 188 | 419k | void release() { | 189 | 419k | if (Obj) | 190 | 287k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 419k | } |
llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>::release() Line | Count | Source | 188 | 573k | void release() { | 189 | 573k | if (Obj) | 190 | 251k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 573k | } |
llvm::IntrusiveRefCntPtr<clang::AnalyzerOptions>::release() Line | Count | Source | 188 | 135k | void release() { | 189 | 135k | if (Obj) | 190 | 134k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 135k | } |
llvm::IntrusiveRefCntPtr<clang::ASTContext>::release() Line | Count | Source | 188 | 76.9k | void release() { | 189 | 76.9k | if (Obj) | 190 | 22.4k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 76.9k | } |
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine>::release() Line | Count | Source | 188 | 72.6k | void release() { | 189 | 72.6k | if (Obj) | 190 | 30.3k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 72.6k | } |
llvm::IntrusiveRefCntPtr<clang::vfs::OverlayFileSystem>::release() Line | Count | Source | 188 | 2.73k | void release() { | 189 | 2.73k | if (Obj) | 190 | 2.69k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 2.73k | } |
llvm::IntrusiveRefCntPtr<clang::vfs::InMemoryFileSystem>::release() Line | Count | Source | 188 | 28.1k | void release() { | 189 | 28.1k | if (Obj) | 190 | 28.1k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 28.1k | } |
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::ExternalSemaSource>::release() Line | Count | Source | 188 | 21.2k | void release() { | 189 | 21.2k | if (Obj) | 190 | 70 | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 21.2k | } |
llvm::IntrusiveRefCntPtr<clang::ento::ObjCMethodCall const>::release() Line | Count | Source | 188 | 23.7k | void release() { | 189 | 23.7k | if (Obj) | 190 | 23.7k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 23.7k | } |
llvm::IntrusiveRefCntPtr<clang::FileManager>::release() Line | Count | Source | 188 | 71.7k | void release() { | 189 | 71.7k | if (Obj) | 190 | 26.9k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 71.7k | } |
llvm::IntrusiveRefCntPtr<clang::SourceManager>::release() Line | Count | Source | 188 | 68.9k | void release() { | 189 | 68.9k | if (Obj) | 190 | 23.7k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 68.9k | } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXConstructorCall const>::release() Line | Count | Source | 188 | 18.5k | void release() { | 189 | 18.5k | if (Obj) | 190 | 18.5k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 18.5k | } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXDestructorCall const>::release() Line | Count | Source | 188 | 475 | void release() { | 189 | 475 | if (Obj) | 190 | 475 | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 475 | } |
llvm::IntrusiveRefCntPtr<clang::ento::CXXAllocatorCall const>::release() Line | Count | Source | 188 | 299 | void release() { | 189 | 299 | if (Obj) | 190 | 299 | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 299 | } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>::release() Line | Count | Source | 188 | 23.9M | void release() { | 189 | 23.9M | if (Obj) | 190 | 18.8M | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 23.9M | } |
llvm::IntrusiveRefCntPtr<clang::MemoryBufferCache>::release() Line | Count | Source | 188 | 26.9k | void release() { | 189 | 26.9k | if (Obj) | 190 | 25.6k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 26.9k | } |
llvm::IntrusiveRefCntPtr<clang::TargetInfo>::release() Line | Count | Source | 188 | 85.6k | void release() { | 189 | 85.6k | if (Obj) | 190 | 23.1k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 85.6k | } |
llvm::IntrusiveRefCntPtr<clang::RopeRefCountString>::release() Line | Count | Source | 188 | 6.33M | void release() { | 189 | 6.33M | if (Obj) | 190 | 2.89M | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 6.33M | } |
llvm::IntrusiveRefCntPtr<clang::ExternalASTSource>::release() Line | Count | Source | 188 | 27.4k | void release() { | 189 | 27.4k | if (Obj) | 190 | 3.47k | IntrusiveRefCntPtrInfo<T>::release(Obj); | 191 | 27.4k | } |
|
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 | 757k | const IntrusiveRefCntPtr<U> &B) { |
199 | 757k | return A.get() == B.get(); |
200 | 757k | } |
201 | | |
202 | | template <class T, class U> |
203 | | inline bool operator!=(const IntrusiveRefCntPtr<T> &A, |
204 | 128k | const IntrusiveRefCntPtr<U> &B) { |
205 | 128k | return A.get() != B.get(); |
206 | 128k | } 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 | 226 | const IntrusiveRefCntPtr<U> &B) { | 205 | 226 | return A.get() != B.get(); | 206 | 226 | } |
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 | 127k | const IntrusiveRefCntPtr<U> &B) { | 205 | 127k | return A.get() != B.get(); | 206 | 127k | } |
|
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 | 264k | bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) { |
230 | 264k | return !B; |
231 | 264k | } bool llvm::operator==<clang::SourceManager>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::SourceManager> const&) Line | Count | Source | 229 | 76.9k | bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) { | 230 | 76.9k | return !B; | 231 | 76.9k | } |
bool llvm::operator==<clang::vfs::FileSystem>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&) Line | Count | Source | 229 | 34.5k | bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) { | 230 | 34.5k | return !B; | 231 | 34.5k | } |
bool llvm::operator==<clang::DiagnosticsEngine>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> const&) Line | Count | Source | 229 | 36.1k | bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) { | 230 | 36.1k | return !B; | 231 | 36.1k | } |
bool llvm::operator==<clang::FileManager>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::FileManager> const&) Line | Count | Source | 229 | 40.4k | bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) { | 230 | 40.4k | return !B; | 231 | 40.4k | } |
bool llvm::operator==<clang::TargetInfo>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::TargetInfo> const&) Line | Count | Source | 229 | 41.8k | bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) { | 230 | 41.8k | return !B; | 231 | 41.8k | } |
bool llvm::operator==<clang::ASTContext>(std::nullptr_t, llvm::IntrusiveRefCntPtr<clang::ASTContext> const&) Line | Count | Source | 229 | 34.3k | bool operator==(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) { | 230 | 34.3k | return !B; | 231 | 34.3k | } |
|
232 | | |
233 | | template <class T> |
234 | 264k | bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { |
235 | 264k | return B == A; |
236 | 264k | } bool llvm::operator==<clang::DiagnosticsEngine>(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> const&, std::nullptr_t) Line | Count | Source | 234 | 36.1k | bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 235 | 36.1k | return B == A; | 236 | 36.1k | } |
bool llvm::operator==<clang::FileManager>(llvm::IntrusiveRefCntPtr<clang::FileManager> const&, std::nullptr_t) Line | Count | Source | 234 | 40.4k | bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 235 | 40.4k | return B == A; | 236 | 40.4k | } |
bool llvm::operator==<clang::vfs::FileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&, std::nullptr_t) Line | Count | Source | 234 | 34.5k | bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 235 | 34.5k | return B == A; | 236 | 34.5k | } |
bool llvm::operator==<clang::TargetInfo>(llvm::IntrusiveRefCntPtr<clang::TargetInfo> const&, std::nullptr_t) Line | Count | Source | 234 | 41.8k | bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 235 | 41.8k | return B == A; | 236 | 41.8k | } |
bool llvm::operator==<clang::SourceManager>(llvm::IntrusiveRefCntPtr<clang::SourceManager> const&, std::nullptr_t) Line | Count | Source | 234 | 76.9k | bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 235 | 76.9k | return B == A; | 236 | 76.9k | } |
bool llvm::operator==<clang::ASTContext>(llvm::IntrusiveRefCntPtr<clang::ASTContext> const&, std::nullptr_t) Line | Count | Source | 234 | 34.3k | bool operator==(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 235 | 34.3k | return B == A; | 236 | 34.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 | 264k | bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { |
245 | 264k | return !(A == B); |
246 | 264k | } bool llvm::operator!=<clang::TargetInfo>(llvm::IntrusiveRefCntPtr<clang::TargetInfo> const&, std::nullptr_t) Line | Count | Source | 244 | 41.8k | bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 245 | 41.8k | return !(A == B); | 246 | 41.8k | } |
bool llvm::operator!=<clang::ASTContext>(llvm::IntrusiveRefCntPtr<clang::ASTContext> const&, std::nullptr_t) Line | Count | Source | 244 | 34.3k | bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 245 | 34.3k | return !(A == B); | 246 | 34.3k | } |
bool llvm::operator!=<clang::SourceManager>(llvm::IntrusiveRefCntPtr<clang::SourceManager> const&, std::nullptr_t) Line | Count | Source | 244 | 76.9k | bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 245 | 76.9k | return !(A == B); | 246 | 76.9k | } |
bool llvm::operator!=<clang::DiagnosticsEngine>(llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> const&, std::nullptr_t) Line | Count | Source | 244 | 36.1k | bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 245 | 36.1k | return !(A == B); | 246 | 36.1k | } |
bool llvm::operator!=<clang::vfs::FileSystem>(llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem> const&, std::nullptr_t) Line | Count | Source | 244 | 34.5k | bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 245 | 34.5k | return !(A == B); | 246 | 34.5k | } |
bool llvm::operator!=<clang::FileManager>(llvm::IntrusiveRefCntPtr<clang::FileManager> const&, std::nullptr_t) Line | Count | Source | 244 | 40.4k | bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) { | 245 | 40.4k | return !(A == B); | 246 | 40.4k | } |
|
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 |