/Users/buildslave/jenkins/workspace/coverage/llvm-project/clang/lib/ExtractAPI/API.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | //===- ExtractAPI/API.cpp ---------------------------------------*- C++ -*-===// |
2 | | // |
3 | | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | | // See https://llvm.org/LICENSE.txt for license information. |
5 | | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | | // |
7 | | //===----------------------------------------------------------------------===// |
8 | | /// |
9 | | /// \file |
10 | | /// This file implements the APIRecord and derived record structs, |
11 | | /// and the APISet class. |
12 | | /// |
13 | | //===----------------------------------------------------------------------===// |
14 | | |
15 | | #include "clang/ExtractAPI/API.h" |
16 | | #include "clang/AST/CommentCommandTraits.h" |
17 | | #include "clang/AST/CommentLexer.h" |
18 | | #include "clang/AST/RawCommentList.h" |
19 | | #include "clang/Index/USRGeneration.h" |
20 | | #include "llvm/ADT/STLFunctionalExtras.h" |
21 | | #include "llvm/ADT/StringRef.h" |
22 | | #include <memory> |
23 | | |
24 | | using namespace clang::extractapi; |
25 | | using namespace llvm; |
26 | | |
27 | | namespace { |
28 | | |
29 | | template <typename RecordTy, typename... CtorArgsTy> |
30 | | RecordTy *addTopLevelRecord(DenseMap<StringRef, APIRecord *> &USRLookupTable, |
31 | | APISet::RecordMap<RecordTy> &RecordMap, |
32 | 217 | StringRef USR, CtorArgsTy &&...CtorArgs) { |
33 | 217 | auto Result = RecordMap.insert({USR, nullptr}); |
34 | | |
35 | | // Create the record if it does not already exist |
36 | 217 | if (Result.second) |
37 | 213 | Result.first->second = |
38 | 213 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); |
39 | | |
40 | 217 | auto *Record = Result.first->second.get(); |
41 | 217 | USRLookupTable.insert({USR, Record}); |
42 | 217 | return Record; |
43 | 217 | } API.cpp:clang::extractapi::NamespaceRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::NamespaceRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::NamespaceRecord, std::__1::default_delete<clang::extractapi::NamespaceRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::NamespaceRecord, std::__1::default_delete<clang::extractapi::NamespaceRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&) Line | Count | Source | 32 | 3 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 3 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 3 | if (Result.second) | 37 | 3 | Result.first->second = | 38 | 3 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 3 | auto *Record = Result.first->second.get(); | 41 | 3 | USRLookupTable.insert({USR, Record}); | 42 | 3 | return Record; | 43 | 3 | } |
API.cpp:clang::extractapi::GlobalVariableRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::GlobalVariableRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalVariableRecord, std::__1::default_delete<clang::extractapi::GlobalVariableRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalVariableRecord, std::__1::default_delete<clang::extractapi::GlobalVariableRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&) Line | Count | Source | 32 | 13 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 13 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 13 | if (Result.second) | 37 | 13 | Result.first->second = | 38 | 13 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 13 | auto *Record = Result.first->second.get(); | 41 | 13 | USRLookupTable.insert({USR, Record}); | 42 | 13 | return Record; | 43 | 13 | } |
API.cpp:clang::extractapi::GlobalVariableTemplateRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::GlobalVariableTemplateRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalVariableTemplateRecord, std::__1::default_delete<clang::extractapi::GlobalVariableTemplateRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalVariableTemplateRecord, std::__1::default_delete<clang::extractapi::GlobalVariableTemplateRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, bool&) Line | Count | Source | 32 | 3 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 3 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 3 | if (Result.second) | 37 | 3 | Result.first->second = | 38 | 3 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 3 | auto *Record = Result.first->second.get(); | 41 | 3 | USRLookupTable.insert({USR, Record}); | 42 | 3 | return Record; | 43 | 3 | } |
API.cpp:clang::extractapi::GlobalFunctionRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::GlobalFunctionRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalFunctionRecord, std::__1::default_delete<clang::extractapi::GlobalFunctionRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalFunctionRecord, std::__1::default_delete<clang::extractapi::GlobalFunctionRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, bool&) Line | Count | Source | 32 | 26 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 26 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 26 | if (Result.second) | 37 | 22 | Result.first->second = | 38 | 22 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 26 | auto *Record = Result.first->second.get(); | 41 | 26 | USRLookupTable.insert({USR, Record}); | 42 | 26 | return Record; | 43 | 26 | } |
API.cpp:clang::extractapi::GlobalFunctionTemplateRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::GlobalFunctionTemplateRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::Template&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalFunctionTemplateRecord, std::__1::default_delete<clang::extractapi::GlobalFunctionTemplateRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalFunctionTemplateRecord, std::__1::default_delete<clang::extractapi::GlobalFunctionTemplateRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::Template&, bool&) Line | Count | Source | 32 | 3 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 3 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 3 | if (Result.second) | 37 | 3 | Result.first->second = | 38 | 3 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 3 | auto *Record = Result.first->second.get(); | 41 | 3 | USRLookupTable.insert({USR, Record}); | 42 | 3 | return Record; | 43 | 3 | } |
API.cpp:clang::extractapi::GlobalFunctionTemplateSpecializationRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::GlobalFunctionTemplateSpecializationRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalFunctionTemplateSpecializationRecord, std::__1::default_delete<clang::extractapi::GlobalFunctionTemplateSpecializationRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalFunctionTemplateSpecializationRecord, std::__1::default_delete<clang::extractapi::GlobalFunctionTemplateSpecializationRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, bool&) Line | Count | Source | 32 | 1 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 1 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 1 | if (Result.second) | 37 | 1 | Result.first->second = | 38 | 1 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 1 | auto *Record = Result.first->second.get(); | 41 | 1 | USRLookupTable.insert({USR, Record}); | 42 | 1 | return Record; | 43 | 1 | } |
API.cpp:clang::extractapi::EnumRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::EnumRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::EnumRecord, std::__1::default_delete<clang::extractapi::EnumRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::EnumRecord, std::__1::default_delete<clang::extractapi::EnumRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&) Line | Count | Source | 32 | 7 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 7 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 7 | if (Result.second) | 37 | 7 | Result.first->second = | 38 | 7 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 7 | auto *Record = Result.first->second.get(); | 41 | 7 | USRLookupTable.insert({USR, Record}); | 42 | 7 | return Record; | 43 | 7 | } |
API.cpp:clang::extractapi::StructRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::StructRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::StructRecord, std::__1::default_delete<clang::extractapi::StructRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::StructRecord, std::__1::default_delete<clang::extractapi::StructRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&) Line | Count | Source | 32 | 21 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 21 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 21 | if (Result.second) | 37 | 21 | Result.first->second = | 38 | 21 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 21 | auto *Record = Result.first->second.get(); | 41 | 21 | USRLookupTable.insert({USR, Record}); | 42 | 21 | return Record; | 43 | 21 | } |
Unexecuted instantiation: API.cpp:clang::extractapi::StaticFieldRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::StaticFieldRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::SymbolReference&, clang::extractapi::AccessControl&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::StaticFieldRecord, std::__1::default_delete<clang::extractapi::StaticFieldRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::StaticFieldRecord, std::__1::default_delete<clang::extractapi::StaticFieldRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::SymbolReference&, clang::extractapi::AccessControl&, bool&) API.cpp:clang::extractapi::CXXFieldRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::CXXFieldRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::AccessControl&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXFieldRecord, std::__1::default_delete<clang::extractapi::CXXFieldRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXFieldRecord, std::__1::default_delete<clang::extractapi::CXXFieldRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::AccessControl&, bool&) Line | Count | Source | 32 | 4 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 4 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 4 | if (Result.second) | 37 | 4 | Result.first->second = | 38 | 4 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 4 | auto *Record = Result.first->second.get(); | 41 | 4 | USRLookupTable.insert({USR, Record}); | 42 | 4 | return Record; | 43 | 4 | } |
API.cpp:clang::extractapi::CXXFieldTemplateRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::CXXFieldTemplateRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::AccessControl&, clang::extractapi::Template&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXFieldTemplateRecord, std::__1::default_delete<clang::extractapi::CXXFieldTemplateRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXFieldTemplateRecord, std::__1::default_delete<clang::extractapi::CXXFieldTemplateRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::AccessControl&, clang::extractapi::Template&, bool&) Line | Count | Source | 32 | 1 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 1 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 1 | if (Result.second) | 37 | 1 | Result.first->second = | 38 | 1 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 1 | auto *Record = Result.first->second.get(); | 41 | 1 | USRLookupTable.insert({USR, Record}); | 42 | 1 | return Record; | 43 | 1 | } |
API.cpp:clang::extractapi::CXXClassRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::CXXClassRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::APIRecord::RecordKind&, clang::extractapi::AccessControl&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXClassRecord, std::__1::default_delete<clang::extractapi::CXXClassRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXClassRecord, std::__1::default_delete<clang::extractapi::CXXClassRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::APIRecord::RecordKind&, clang::extractapi::AccessControl&, bool&) Line | Count | Source | 32 | 15 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 15 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 15 | if (Result.second) | 37 | 15 | Result.first->second = | 38 | 15 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 15 | auto *Record = Result.first->second.get(); | 41 | 15 | USRLookupTable.insert({USR, Record}); | 42 | 15 | return Record; | 43 | 15 | } |
API.cpp:clang::extractapi::ClassTemplateRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::ClassTemplateRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, clang::extractapi::AccessControl&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ClassTemplateRecord, std::__1::default_delete<clang::extractapi::ClassTemplateRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ClassTemplateRecord, std::__1::default_delete<clang::extractapi::ClassTemplateRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, clang::extractapi::AccessControl&, bool&) Line | Count | Source | 32 | 4 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 4 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 4 | if (Result.second) | 37 | 4 | Result.first->second = | 38 | 4 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 4 | auto *Record = Result.first->second.get(); | 41 | 4 | USRLookupTable.insert({USR, Record}); | 42 | 4 | return Record; | 43 | 4 | } |
API.cpp:clang::extractapi::ClassTemplateSpecializationRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::ClassTemplateSpecializationRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::AccessControl&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ClassTemplateSpecializationRecord, std::__1::default_delete<clang::extractapi::ClassTemplateSpecializationRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ClassTemplateSpecializationRecord, std::__1::default_delete<clang::extractapi::ClassTemplateSpecializationRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::AccessControl&, bool&) Line | Count | Source | 32 | 1 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 1 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 1 | if (Result.second) | 37 | 1 | Result.first->second = | 38 | 1 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 1 | auto *Record = Result.first->second.get(); | 41 | 1 | USRLookupTable.insert({USR, Record}); | 42 | 1 | return Record; | 43 | 1 | } |
API.cpp:clang::extractapi::ClassTemplatePartialSpecializationRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::ClassTemplatePartialSpecializationRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, clang::extractapi::AccessControl&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ClassTemplatePartialSpecializationRecord, std::__1::default_delete<clang::extractapi::ClassTemplatePartialSpecializationRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ClassTemplatePartialSpecializationRecord, std::__1::default_delete<clang::extractapi::ClassTemplatePartialSpecializationRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, clang::extractapi::AccessControl&, bool&) Line | Count | Source | 32 | 1 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 1 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 1 | if (Result.second) | 37 | 1 | Result.first->second = | 38 | 1 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 1 | auto *Record = Result.first->second.get(); | 41 | 1 | USRLookupTable.insert({USR, Record}); | 42 | 1 | return Record; | 43 | 1 | } |
API.cpp:clang::extractapi::GlobalVariableTemplateSpecializationRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::GlobalVariableTemplateSpecializationRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalVariableTemplateSpecializationRecord, std::__1::default_delete<clang::extractapi::GlobalVariableTemplateSpecializationRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalVariableTemplateSpecializationRecord, std::__1::default_delete<clang::extractapi::GlobalVariableTemplateSpecializationRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&) Line | Count | Source | 32 | 1 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 1 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 1 | if (Result.second) | 37 | 1 | Result.first->second = | 38 | 1 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 1 | auto *Record = Result.first->second.get(); | 41 | 1 | USRLookupTable.insert({USR, Record}); | 42 | 1 | return Record; | 43 | 1 | } |
API.cpp:clang::extractapi::GlobalVariableTemplatePartialSpecializationRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::GlobalVariableTemplatePartialSpecializationRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalVariableTemplatePartialSpecializationRecord, std::__1::default_delete<clang::extractapi::GlobalVariableTemplatePartialSpecializationRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::GlobalVariableTemplatePartialSpecializationRecord, std::__1::default_delete<clang::extractapi::GlobalVariableTemplatePartialSpecializationRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, bool&) Line | Count | Source | 32 | 1 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 1 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 1 | if (Result.second) | 37 | 1 | Result.first->second = | 38 | 1 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 1 | auto *Record = Result.first->second.get(); | 41 | 1 | USRLookupTable.insert({USR, Record}); | 42 | 1 | return Record; | 43 | 1 | } |
API.cpp:clang::extractapi::ConceptRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::ConceptRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ConceptRecord, std::__1::default_delete<clang::extractapi::ConceptRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ConceptRecord, std::__1::default_delete<clang::extractapi::ConceptRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::Template&, bool&) Line | Count | Source | 32 | 1 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 1 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 1 | if (Result.second) | 37 | 1 | Result.first->second = | 38 | 1 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 1 | auto *Record = Result.first->second.get(); | 41 | 1 | USRLookupTable.insert({USR, Record}); | 42 | 1 | return Record; | 43 | 1 | } |
API.cpp:clang::extractapi::CXXInstanceMethodRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::CXXInstanceMethodRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::AccessControl&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXInstanceMethodRecord, std::__1::default_delete<clang::extractapi::CXXInstanceMethodRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXInstanceMethodRecord, std::__1::default_delete<clang::extractapi::CXXInstanceMethodRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::AccessControl&, bool&) Line | Count | Source | 32 | 8 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 8 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 8 | if (Result.second) | 37 | 8 | Result.first->second = | 38 | 8 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 8 | auto *Record = Result.first->second.get(); | 41 | 8 | USRLookupTable.insert({USR, Record}); | 42 | 8 | return Record; | 43 | 8 | } |
API.cpp:clang::extractapi::CXXStaticMethodRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::CXXStaticMethodRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::AccessControl&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXStaticMethodRecord, std::__1::default_delete<clang::extractapi::CXXStaticMethodRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXStaticMethodRecord, std::__1::default_delete<clang::extractapi::CXXStaticMethodRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::AccessControl&, bool&) Line | Count | Source | 32 | 1 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 1 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 1 | if (Result.second) | 37 | 1 | Result.first->second = | 38 | 1 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 1 | auto *Record = Result.first->second.get(); | 41 | 1 | USRLookupTable.insert({USR, Record}); | 42 | 1 | return Record; | 43 | 1 | } |
API.cpp:clang::extractapi::CXXMethodTemplateRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::CXXMethodTemplateRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::AccessControl&, clang::extractapi::Template&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXMethodTemplateRecord, std::__1::default_delete<clang::extractapi::CXXMethodTemplateRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXMethodTemplateRecord, std::__1::default_delete<clang::extractapi::CXXMethodTemplateRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::AccessControl&, clang::extractapi::Template&, bool&) Line | Count | Source | 32 | 2 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 2 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 2 | if (Result.second) | 37 | 2 | Result.first->second = | 38 | 2 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 2 | auto *Record = Result.first->second.get(); | 41 | 2 | USRLookupTable.insert({USR, Record}); | 42 | 2 | return Record; | 43 | 2 | } |
API.cpp:clang::extractapi::CXXMethodTemplateSpecializationRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::CXXMethodTemplateSpecializationRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::AccessControl&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXMethodTemplateSpecializationRecord, std::__1::default_delete<clang::extractapi::CXXMethodTemplateSpecializationRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::CXXMethodTemplateSpecializationRecord, std::__1::default_delete<clang::extractapi::CXXMethodTemplateSpecializationRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::FunctionSignature&, clang::extractapi::AccessControl&, bool&) Line | Count | Source | 32 | 1 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 1 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 1 | if (Result.second) | 37 | 1 | Result.first->second = | 38 | 1 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 1 | auto *Record = Result.first->second.get(); | 41 | 1 | USRLookupTable.insert({USR, Record}); | 42 | 1 | return Record; | 43 | 1 | } |
API.cpp:clang::extractapi::ObjCCategoryRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::ObjCCategoryRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::SymbolReference&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ObjCCategoryRecord, std::__1::default_delete<clang::extractapi::ObjCCategoryRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ObjCCategoryRecord, std::__1::default_delete<clang::extractapi::ObjCCategoryRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::SymbolReference&, bool&) Line | Count | Source | 32 | 7 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 7 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 7 | if (Result.second) | 37 | 7 | Result.first->second = | 38 | 7 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 7 | auto *Record = Result.first->second.get(); | 41 | 7 | USRLookupTable.insert({USR, Record}); | 42 | 7 | return Record; | 43 | 7 | } |
API.cpp:clang::extractapi::ObjCInterfaceRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::ObjCInterfaceRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::SymbolReference&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ObjCInterfaceRecord, std::__1::default_delete<clang::extractapi::ObjCInterfaceRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ObjCInterfaceRecord, std::__1::default_delete<clang::extractapi::ObjCInterfaceRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, clang::LinkageInfo&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::SymbolReference&, bool&) Line | Count | Source | 32 | 32 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 32 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 32 | if (Result.second) | 37 | 32 | Result.first->second = | 38 | 32 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 32 | auto *Record = Result.first->second.get(); | 41 | 32 | USRLookupTable.insert({USR, Record}); | 42 | 32 | return Record; | 43 | 32 | } |
API.cpp:clang::extractapi::ObjCProtocolRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::ObjCProtocolRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ObjCProtocolRecord, std::__1::default_delete<clang::extractapi::ObjCProtocolRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::ObjCProtocolRecord, std::__1::default_delete<clang::extractapi::ObjCProtocolRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&) Line | Count | Source | 32 | 15 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 15 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 15 | if (Result.second) | 37 | 15 | Result.first->second = | 38 | 15 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 15 | auto *Record = Result.first->second.get(); | 41 | 15 | USRLookupTable.insert({USR, Record}); | 42 | 15 | return Record; | 43 | 15 | } |
API.cpp:clang::extractapi::MacroDefinitionRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::MacroDefinitionRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::MacroDefinitionRecord, std::__1::default_delete<clang::extractapi::MacroDefinitionRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::MacroDefinitionRecord, std::__1::default_delete<clang::extractapi::MacroDefinitionRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, bool&) Line | Count | Source | 32 | 24 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 24 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 24 | if (Result.second) | 37 | 24 | Result.first->second = | 38 | 24 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 24 | auto *Record = Result.first->second.get(); | 41 | 24 | USRLookupTable.insert({USR, Record}); | 42 | 24 | return Record; | 43 | 24 | } |
API.cpp:clang::extractapi::TypedefRecord* (anonymous namespace)::addTopLevelRecord<clang::extractapi::TypedefRecord, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::SymbolReference&, bool&>(llvm::DenseMap<llvm::StringRef, clang::extractapi::APIRecord*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::extractapi::APIRecord*> >&, llvm::MapVector<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::TypedefRecord, std::__1::default_delete<clang::extractapi::TypedefRecord> >, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int> >, llvm::SmallVector<std::__1::pair<llvm::StringRef, std::__1::unique_ptr<clang::extractapi::TypedefRecord, std::__1::default_delete<clang::extractapi::TypedefRecord> > >, 0u> >&, llvm::StringRef, llvm::StringRef&, clang::PresumedLoc&, clang::extractapi::AvailabilitySet&&, std::__1::vector<clang::RawComment::CommentLine, std::__1::allocator<clang::RawComment::CommentLine> > const&, clang::extractapi::DeclarationFragments&, clang::extractapi::DeclarationFragments&, clang::extractapi::SymbolReference&, bool&) Line | Count | Source | 32 | 21 | StringRef USR, CtorArgsTy &&...CtorArgs) { | 33 | 21 | auto Result = RecordMap.insert({USR, nullptr}); | 34 | | | 35 | | // Create the record if it does not already exist | 36 | 21 | if (Result.second) | 37 | 21 | Result.first->second = | 38 | 21 | std::make_unique<RecordTy>(USR, std::forward<CtorArgsTy>(CtorArgs)...); | 39 | | | 40 | 21 | auto *Record = Result.first->second.get(); | 41 | 21 | USRLookupTable.insert({USR, Record}); | 42 | 21 | return Record; | 43 | 21 | } |
|
44 | | |
45 | | } // namespace |
46 | | |
47 | | NamespaceRecord * |
48 | | APISet::addNamespace(APIRecord *Parent, StringRef Name, StringRef USR, |
49 | | PresumedLoc Loc, AvailabilitySet Availability, |
50 | | LinkageInfo Linkage, const DocComment &Comment, |
51 | | DeclarationFragments Declaration, |
52 | 3 | DeclarationFragments SubHeading, bool IsFromSystemHeader) { |
53 | 3 | auto *Record = addTopLevelRecord( |
54 | 3 | USRBasedLookupTable, Namespaces, USR, Name, Loc, std::move(Availability), |
55 | 3 | Linkage, Comment, Declaration, SubHeading, IsFromSystemHeader); |
56 | | |
57 | 3 | if (Parent) |
58 | 1 | Record->ParentInformation = APIRecord::HierarchyInformation( |
59 | 1 | Parent->USR, Parent->Name, Parent->getKind(), Parent); |
60 | 3 | return Record; |
61 | 3 | } |
62 | | |
63 | | GlobalVariableRecord * |
64 | | APISet::addGlobalVar(StringRef Name, StringRef USR, PresumedLoc Loc, |
65 | | AvailabilitySet Availabilities, LinkageInfo Linkage, |
66 | | const DocComment &Comment, DeclarationFragments Fragments, |
67 | 13 | DeclarationFragments SubHeading, bool IsFromSystemHeader) { |
68 | 13 | return addTopLevelRecord(USRBasedLookupTable, GlobalVariables, USR, Name, Loc, |
69 | 13 | std::move(Availabilities), Linkage, Comment, |
70 | 13 | Fragments, SubHeading, IsFromSystemHeader); |
71 | 13 | } |
72 | | |
73 | | GlobalVariableTemplateRecord *APISet::addGlobalVariableTemplate( |
74 | | StringRef Name, StringRef USR, PresumedLoc Loc, |
75 | | AvailabilitySet Availability, LinkageInfo Linkage, |
76 | | const DocComment &Comment, DeclarationFragments Declaration, |
77 | | DeclarationFragments SubHeading, Template Template, |
78 | 3 | bool IsFromSystemHeader) { |
79 | 3 | return addTopLevelRecord(USRBasedLookupTable, GlobalVariableTemplates, USR, |
80 | 3 | Name, Loc, std::move(Availability), Linkage, Comment, |
81 | 3 | Declaration, SubHeading, Template, |
82 | 3 | IsFromSystemHeader); |
83 | 3 | } |
84 | | |
85 | | GlobalFunctionRecord *APISet::addGlobalFunction( |
86 | | StringRef Name, StringRef USR, PresumedLoc Loc, |
87 | | AvailabilitySet Availabilities, LinkageInfo Linkage, |
88 | | const DocComment &Comment, DeclarationFragments Fragments, |
89 | | DeclarationFragments SubHeading, FunctionSignature Signature, |
90 | 26 | bool IsFromSystemHeader) { |
91 | 26 | return addTopLevelRecord(USRBasedLookupTable, GlobalFunctions, USR, Name, Loc, |
92 | 26 | std::move(Availabilities), Linkage, Comment, |
93 | 26 | Fragments, SubHeading, Signature, |
94 | 26 | IsFromSystemHeader); |
95 | 26 | } |
96 | | |
97 | | GlobalFunctionTemplateRecord *APISet::addGlobalFunctionTemplate( |
98 | | StringRef Name, StringRef USR, PresumedLoc Loc, |
99 | | AvailabilitySet Availability, LinkageInfo Linkage, |
100 | | const DocComment &Comment, DeclarationFragments Declaration, |
101 | | DeclarationFragments SubHeading, FunctionSignature Signature, |
102 | 3 | Template Template, bool IsFromSystemHeader) { |
103 | 3 | return addTopLevelRecord(USRBasedLookupTable, GlobalFunctionTemplates, USR, |
104 | 3 | Name, Loc, std::move(Availability), Linkage, Comment, |
105 | 3 | Declaration, SubHeading, Signature, Template, |
106 | 3 | IsFromSystemHeader); |
107 | 3 | } |
108 | | |
109 | | GlobalFunctionTemplateSpecializationRecord * |
110 | | APISet::addGlobalFunctionTemplateSpecialization( |
111 | | StringRef Name, StringRef USR, PresumedLoc Loc, |
112 | | AvailabilitySet Availability, LinkageInfo Linkage, |
113 | | const DocComment &Comment, DeclarationFragments Declaration, |
114 | | DeclarationFragments SubHeading, FunctionSignature Signature, |
115 | 1 | bool IsFromSystemHeader) { |
116 | 1 | return addTopLevelRecord( |
117 | 1 | USRBasedLookupTable, GlobalFunctionTemplateSpecializations, USR, Name, |
118 | 1 | Loc, std::move(Availability), Linkage, Comment, Declaration, SubHeading, |
119 | 1 | Signature, IsFromSystemHeader); |
120 | 1 | } |
121 | | |
122 | | EnumConstantRecord *APISet::addEnumConstant(EnumRecord *Enum, StringRef Name, |
123 | | StringRef USR, PresumedLoc Loc, |
124 | | AvailabilitySet Availabilities, |
125 | | const DocComment &Comment, |
126 | | DeclarationFragments Declaration, |
127 | | DeclarationFragments SubHeading, |
128 | 15 | bool IsFromSystemHeader) { |
129 | 15 | auto Record = std::make_unique<EnumConstantRecord>( |
130 | 15 | USR, Name, Loc, std::move(Availabilities), Comment, Declaration, |
131 | 15 | SubHeading, IsFromSystemHeader); |
132 | 15 | Record->ParentInformation = APIRecord::HierarchyInformation( |
133 | 15 | Enum->USR, Enum->Name, Enum->getKind(), Enum); |
134 | 15 | USRBasedLookupTable.insert({USR, Record.get()}); |
135 | 15 | return Enum->Constants.emplace_back(std::move(Record)).get(); |
136 | 15 | } |
137 | | |
138 | | EnumRecord *APISet::addEnum(StringRef Name, StringRef USR, PresumedLoc Loc, |
139 | | AvailabilitySet Availabilities, |
140 | | const DocComment &Comment, |
141 | | DeclarationFragments Declaration, |
142 | | DeclarationFragments SubHeading, |
143 | 7 | bool IsFromSystemHeader) { |
144 | 7 | return addTopLevelRecord(USRBasedLookupTable, Enums, USR, Name, Loc, |
145 | 7 | std::move(Availabilities), Comment, Declaration, |
146 | 7 | SubHeading, IsFromSystemHeader); |
147 | 7 | } |
148 | | |
149 | | StructFieldRecord *APISet::addStructField(StructRecord *Struct, StringRef Name, |
150 | | StringRef USR, PresumedLoc Loc, |
151 | | AvailabilitySet Availabilities, |
152 | | const DocComment &Comment, |
153 | | DeclarationFragments Declaration, |
154 | | DeclarationFragments SubHeading, |
155 | 22 | bool IsFromSystemHeader) { |
156 | 22 | auto Record = std::make_unique<StructFieldRecord>( |
157 | 22 | USR, Name, Loc, std::move(Availabilities), Comment, Declaration, |
158 | 22 | SubHeading, IsFromSystemHeader); |
159 | 22 | Record->ParentInformation = APIRecord::HierarchyInformation( |
160 | 22 | Struct->USR, Struct->Name, Struct->getKind(), Struct); |
161 | 22 | USRBasedLookupTable.insert({USR, Record.get()}); |
162 | 22 | return Struct->Fields.emplace_back(std::move(Record)).get(); |
163 | 22 | } |
164 | | |
165 | | StructRecord *APISet::addStruct(StringRef Name, StringRef USR, PresumedLoc Loc, |
166 | | AvailabilitySet Availabilities, |
167 | | const DocComment &Comment, |
168 | | DeclarationFragments Declaration, |
169 | | DeclarationFragments SubHeading, |
170 | 21 | bool IsFromSystemHeader) { |
171 | 21 | return addTopLevelRecord(USRBasedLookupTable, Structs, USR, Name, Loc, |
172 | 21 | std::move(Availabilities), Comment, Declaration, |
173 | 21 | SubHeading, IsFromSystemHeader); |
174 | 21 | } |
175 | | |
176 | | StaticFieldRecord * |
177 | | APISet::addStaticField(StringRef Name, StringRef USR, PresumedLoc Loc, |
178 | | AvailabilitySet Availabilities, LinkageInfo Linkage, |
179 | | const DocComment &Comment, |
180 | | DeclarationFragments Declaration, |
181 | | DeclarationFragments SubHeading, SymbolReference Context, |
182 | 0 | AccessControl Access, bool IsFromSystemHeader) { |
183 | 0 | return addTopLevelRecord(USRBasedLookupTable, StaticFields, USR, Name, Loc, |
184 | 0 | std::move(Availabilities), Linkage, Comment, |
185 | 0 | Declaration, SubHeading, Context, Access, |
186 | 0 | IsFromSystemHeader); |
187 | 0 | } |
188 | | |
189 | | CXXFieldRecord * |
190 | | APISet::addCXXField(APIRecord *CXXClass, StringRef Name, StringRef USR, |
191 | | PresumedLoc Loc, AvailabilitySet Availabilities, |
192 | | const DocComment &Comment, DeclarationFragments Declaration, |
193 | | DeclarationFragments SubHeading, AccessControl Access, |
194 | 4 | bool IsFromSystemHeader) { |
195 | 4 | auto *Record = addTopLevelRecord( |
196 | 4 | USRBasedLookupTable, CXXFields, USR, Name, Loc, std::move(Availabilities), |
197 | 4 | Comment, Declaration, SubHeading, Access, IsFromSystemHeader); |
198 | 4 | Record->ParentInformation = APIRecord::HierarchyInformation( |
199 | 4 | CXXClass->USR, CXXClass->Name, CXXClass->getKind(), CXXClass); |
200 | 4 | return Record; |
201 | 4 | } |
202 | | |
203 | | CXXFieldTemplateRecord *APISet::addCXXFieldTemplate( |
204 | | APIRecord *Parent, StringRef Name, StringRef USR, PresumedLoc Loc, |
205 | | AvailabilitySet Availability, const DocComment &Comment, |
206 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
207 | 1 | AccessControl Access, Template Template, bool IsFromSystemHeader) { |
208 | 1 | auto *Record = |
209 | 1 | addTopLevelRecord(USRBasedLookupTable, CXXFieldTemplates, USR, Name, Loc, |
210 | 1 | std::move(Availability), Comment, Declaration, |
211 | 1 | SubHeading, Access, Template, IsFromSystemHeader); |
212 | 1 | Record->ParentInformation = APIRecord::HierarchyInformation( |
213 | 1 | Parent->USR, Parent->Name, Parent->getKind(), Parent); |
214 | | |
215 | 1 | return Record; |
216 | 1 | } |
217 | | |
218 | | CXXClassRecord * |
219 | | APISet::addCXXClass(APIRecord *Parent, StringRef Name, StringRef USR, |
220 | | PresumedLoc Loc, AvailabilitySet Availabilities, |
221 | | const DocComment &Comment, DeclarationFragments Declaration, |
222 | | DeclarationFragments SubHeading, APIRecord::RecordKind Kind, |
223 | 15 | AccessControl Access, bool IsFromSystemHeader) { |
224 | 15 | auto *Record = |
225 | 15 | addTopLevelRecord(USRBasedLookupTable, CXXClasses, USR, Name, Loc, |
226 | 15 | std::move(Availabilities), Comment, Declaration, |
227 | 15 | SubHeading, Kind, Access, IsFromSystemHeader); |
228 | 15 | if (Parent) |
229 | 1 | Record->ParentInformation = APIRecord::HierarchyInformation( |
230 | 1 | Parent->USR, Parent->Name, Parent->getKind(), Parent); |
231 | 15 | return Record; |
232 | 15 | } |
233 | | |
234 | | ClassTemplateRecord *APISet::addClassTemplate( |
235 | | APIRecord *Parent, StringRef Name, StringRef USR, PresumedLoc Loc, |
236 | | AvailabilitySet Availability, const DocComment &Comment, |
237 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
238 | 4 | Template Template, AccessControl Access, bool IsFromSystemHeader) { |
239 | 4 | auto *Record = |
240 | 4 | addTopLevelRecord(USRBasedLookupTable, ClassTemplates, USR, Name, Loc, |
241 | 4 | std::move(Availability), Comment, Declaration, |
242 | 4 | SubHeading, Template, Access, IsFromSystemHeader); |
243 | 4 | if (Parent) |
244 | 0 | Record->ParentInformation = APIRecord::HierarchyInformation( |
245 | 0 | Parent->USR, Parent->Name, Parent->getKind(), Parent); |
246 | 4 | return Record; |
247 | 4 | } |
248 | | |
249 | | ClassTemplateSpecializationRecord *APISet::addClassTemplateSpecialization( |
250 | | APIRecord *Parent, StringRef Name, StringRef USR, PresumedLoc Loc, |
251 | | AvailabilitySet Availability, const DocComment &Comment, |
252 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
253 | 1 | AccessControl Access, bool IsFromSystemHeader) { |
254 | 1 | auto *Record = |
255 | 1 | addTopLevelRecord(USRBasedLookupTable, ClassTemplateSpecializations, USR, |
256 | 1 | Name, Loc, std::move(Availability), Comment, |
257 | 1 | Declaration, SubHeading, Access, IsFromSystemHeader); |
258 | 1 | if (Parent) |
259 | 0 | Record->ParentInformation = APIRecord::HierarchyInformation( |
260 | 0 | Parent->USR, Parent->Name, Parent->getKind(), Parent); |
261 | 1 | return Record; |
262 | 1 | } |
263 | | |
264 | | ClassTemplatePartialSpecializationRecord * |
265 | | APISet::addClassTemplatePartialSpecialization( |
266 | | APIRecord *Parent, StringRef Name, StringRef USR, PresumedLoc Loc, |
267 | | AvailabilitySet Availability, const DocComment &Comment, |
268 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
269 | 1 | Template Template, AccessControl Access, bool IsFromSystemHeader) { |
270 | 1 | auto *Record = addTopLevelRecord( |
271 | 1 | USRBasedLookupTable, ClassTemplatePartialSpecializations, USR, Name, Loc, |
272 | 1 | std::move(Availability), Comment, Declaration, SubHeading, Template, |
273 | 1 | Access, IsFromSystemHeader); |
274 | 1 | if (Parent) |
275 | 0 | Record->ParentInformation = APIRecord::HierarchyInformation( |
276 | 0 | Parent->USR, Parent->Name, Parent->getKind(), Parent); |
277 | 1 | return Record; |
278 | 1 | } |
279 | | |
280 | | GlobalVariableTemplateSpecializationRecord * |
281 | | APISet::addGlobalVariableTemplateSpecialization( |
282 | | StringRef Name, StringRef USR, PresumedLoc Loc, |
283 | | AvailabilitySet Availability, LinkageInfo Linkage, |
284 | | const DocComment &Comment, DeclarationFragments Declaration, |
285 | 1 | DeclarationFragments SubHeading, bool IsFromSystemHeader) { |
286 | 1 | return addTopLevelRecord(USRBasedLookupTable, |
287 | 1 | GlobalVariableTemplateSpecializations, USR, Name, |
288 | 1 | Loc, std::move(Availability), Linkage, Comment, |
289 | 1 | Declaration, SubHeading, IsFromSystemHeader); |
290 | 1 | } |
291 | | |
292 | | GlobalVariableTemplatePartialSpecializationRecord * |
293 | | APISet::addGlobalVariableTemplatePartialSpecialization( |
294 | | StringRef Name, StringRef USR, PresumedLoc Loc, |
295 | | AvailabilitySet Availability, LinkageInfo Linkage, |
296 | | const DocComment &Comment, DeclarationFragments Declaration, |
297 | | DeclarationFragments SubHeading, Template Template, |
298 | 1 | bool IsFromSystemHeader) { |
299 | 1 | return addTopLevelRecord( |
300 | 1 | USRBasedLookupTable, GlobalVariableTemplatePartialSpecializations, USR, |
301 | 1 | Name, Loc, std::move(Availability), Linkage, Comment, Declaration, |
302 | 1 | SubHeading, Template, IsFromSystemHeader); |
303 | 1 | } |
304 | | |
305 | | ConceptRecord *APISet::addConcept(StringRef Name, StringRef USR, |
306 | | PresumedLoc Loc, AvailabilitySet Availability, |
307 | | const DocComment &Comment, |
308 | | DeclarationFragments Declaration, |
309 | | DeclarationFragments SubHeading, |
310 | 1 | Template Template, bool IsFromSystemHeader) { |
311 | 1 | return addTopLevelRecord(USRBasedLookupTable, Concepts, USR, Name, Loc, |
312 | 1 | std::move(Availability), Comment, Declaration, |
313 | 1 | SubHeading, Template, IsFromSystemHeader); |
314 | 1 | } |
315 | | |
316 | | CXXMethodRecord *APISet::addCXXInstanceMethod( |
317 | | APIRecord *CXXClassRecord, StringRef Name, StringRef USR, PresumedLoc Loc, |
318 | | AvailabilitySet Availability, const DocComment &Comment, |
319 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
320 | | FunctionSignature Signature, AccessControl Access, |
321 | 8 | bool IsFromSystemHeader) { |
322 | 8 | CXXMethodRecord *Record = |
323 | 8 | addTopLevelRecord(USRBasedLookupTable, CXXInstanceMethods, USR, Name, Loc, |
324 | 8 | std::move(Availability), Comment, Declaration, |
325 | 8 | SubHeading, Signature, Access, IsFromSystemHeader); |
326 | | |
327 | 8 | Record->ParentInformation = APIRecord::HierarchyInformation( |
328 | 8 | CXXClassRecord->USR, CXXClassRecord->Name, CXXClassRecord->getKind(), |
329 | 8 | CXXClassRecord); |
330 | 8 | return Record; |
331 | 8 | } |
332 | | |
333 | | CXXMethodRecord *APISet::addCXXStaticMethod( |
334 | | APIRecord *CXXClassRecord, StringRef Name, StringRef USR, PresumedLoc Loc, |
335 | | AvailabilitySet Availability, const DocComment &Comment, |
336 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
337 | | FunctionSignature Signature, AccessControl Access, |
338 | 1 | bool IsFromSystemHeader) { |
339 | 1 | CXXMethodRecord *Record = |
340 | 1 | addTopLevelRecord(USRBasedLookupTable, CXXStaticMethods, USR, Name, Loc, |
341 | 1 | std::move(Availability), Comment, Declaration, |
342 | 1 | SubHeading, Signature, Access, IsFromSystemHeader); |
343 | | |
344 | 1 | Record->ParentInformation = APIRecord::HierarchyInformation( |
345 | 1 | CXXClassRecord->USR, CXXClassRecord->Name, CXXClassRecord->getKind(), |
346 | 1 | CXXClassRecord); |
347 | 1 | return Record; |
348 | 1 | } |
349 | | |
350 | | CXXMethodTemplateRecord *APISet::addCXXMethodTemplate( |
351 | | APIRecord *Parent, StringRef Name, StringRef USR, PresumedLoc Loc, |
352 | | AvailabilitySet Availability, const DocComment &Comment, |
353 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
354 | | FunctionSignature Signature, AccessControl Access, Template Template, |
355 | 2 | bool IsFromSystemHeader) { |
356 | 2 | auto *Record = addTopLevelRecord(USRBasedLookupTable, CXXMethodTemplates, USR, |
357 | 2 | Name, Loc, std::move(Availability), Comment, |
358 | 2 | Declaration, SubHeading, Signature, Access, |
359 | 2 | Template, IsFromSystemHeader); |
360 | 2 | Record->ParentInformation = APIRecord::HierarchyInformation( |
361 | 2 | Parent->USR, Parent->Name, Parent->getKind(), Parent); |
362 | | |
363 | 2 | return Record; |
364 | 2 | } |
365 | | |
366 | | CXXMethodTemplateSpecializationRecord *APISet::addCXXMethodTemplateSpec( |
367 | | APIRecord *Parent, StringRef Name, StringRef USR, PresumedLoc Loc, |
368 | | AvailabilitySet Availability, const DocComment &Comment, |
369 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
370 | | FunctionSignature Signature, AccessControl Access, |
371 | 1 | bool IsFromSystemHeader) { |
372 | | |
373 | 1 | auto *Record = addTopLevelRecord( |
374 | 1 | USRBasedLookupTable, CXXMethodTemplateSpecializations, USR, Name, Loc, |
375 | 1 | std::move(Availability), Comment, Declaration, SubHeading, Signature, |
376 | 1 | Access, IsFromSystemHeader); |
377 | 1 | Record->ParentInformation = APIRecord::HierarchyInformation( |
378 | 1 | Parent->USR, Parent->Name, Parent->getKind(), Parent); |
379 | | |
380 | 1 | return Record; |
381 | 1 | } |
382 | | |
383 | | ObjCCategoryRecord *APISet::addObjCCategory( |
384 | | StringRef Name, StringRef USR, PresumedLoc Loc, |
385 | | AvailabilitySet Availabilities, const DocComment &Comment, |
386 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
387 | | SymbolReference Interface, bool IsFromSystemHeader, |
388 | 7 | bool IsFromExternalModule) { |
389 | | // Create the category record. |
390 | 7 | auto *Record = |
391 | 7 | addTopLevelRecord(USRBasedLookupTable, ObjCCategories, USR, Name, Loc, |
392 | 7 | std::move(Availabilities), Comment, Declaration, |
393 | 7 | SubHeading, Interface, IsFromSystemHeader); |
394 | | |
395 | 7 | Record->IsFromExternalModule = IsFromExternalModule; |
396 | | |
397 | 7 | auto It = ObjCInterfaces.find(Interface.USR); |
398 | 7 | if (It != ObjCInterfaces.end()) |
399 | 3 | It->second->Categories.push_back(Record); |
400 | | |
401 | 7 | return Record; |
402 | 7 | } |
403 | | |
404 | | ObjCInterfaceRecord * |
405 | | APISet::addObjCInterface(StringRef Name, StringRef USR, PresumedLoc Loc, |
406 | | AvailabilitySet Availabilities, LinkageInfo Linkage, |
407 | | const DocComment &Comment, |
408 | | DeclarationFragments Declaration, |
409 | | DeclarationFragments SubHeading, |
410 | 32 | SymbolReference SuperClass, bool IsFromSystemHeader) { |
411 | 32 | return addTopLevelRecord(USRBasedLookupTable, ObjCInterfaces, USR, Name, Loc, |
412 | 32 | std::move(Availabilities), Linkage, Comment, |
413 | 32 | Declaration, SubHeading, SuperClass, |
414 | 32 | IsFromSystemHeader); |
415 | 32 | } |
416 | | |
417 | | ObjCMethodRecord *APISet::addObjCMethod( |
418 | | ObjCContainerRecord *Container, StringRef Name, StringRef USR, |
419 | | PresumedLoc Loc, AvailabilitySet Availabilities, const DocComment &Comment, |
420 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
421 | | FunctionSignature Signature, bool IsInstanceMethod, |
422 | 37 | bool IsFromSystemHeader) { |
423 | 37 | std::unique_ptr<ObjCMethodRecord> Record; |
424 | 37 | if (IsInstanceMethod) |
425 | 35 | Record = std::make_unique<ObjCInstanceMethodRecord>( |
426 | 35 | USR, Name, Loc, std::move(Availabilities), Comment, Declaration, |
427 | 35 | SubHeading, Signature, IsFromSystemHeader); |
428 | 2 | else |
429 | 2 | Record = std::make_unique<ObjCClassMethodRecord>( |
430 | 2 | USR, Name, Loc, std::move(Availabilities), Comment, Declaration, |
431 | 2 | SubHeading, Signature, IsFromSystemHeader); |
432 | | |
433 | 37 | Record->ParentInformation = APIRecord::HierarchyInformation( |
434 | 37 | Container->USR, Container->Name, Container->getKind(), Container); |
435 | 37 | USRBasedLookupTable.insert({USR, Record.get()}); |
436 | 37 | return Container->Methods.emplace_back(std::move(Record)).get(); |
437 | 37 | } |
438 | | |
439 | | ObjCPropertyRecord *APISet::addObjCProperty( |
440 | | ObjCContainerRecord *Container, StringRef Name, StringRef USR, |
441 | | PresumedLoc Loc, AvailabilitySet Availabilities, const DocComment &Comment, |
442 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
443 | | ObjCPropertyRecord::AttributeKind Attributes, StringRef GetterName, |
444 | | StringRef SetterName, bool IsOptional, bool IsInstanceProperty, |
445 | 34 | bool IsFromSystemHeader) { |
446 | 34 | std::unique_ptr<ObjCPropertyRecord> Record; |
447 | 34 | if (IsInstanceProperty) |
448 | 31 | Record = std::make_unique<ObjCInstancePropertyRecord>( |
449 | 31 | USR, Name, Loc, std::move(Availabilities), Comment, Declaration, |
450 | 31 | SubHeading, Attributes, GetterName, SetterName, IsOptional, |
451 | 31 | IsFromSystemHeader); |
452 | 3 | else |
453 | 3 | Record = std::make_unique<ObjCClassPropertyRecord>( |
454 | 3 | USR, Name, Loc, std::move(Availabilities), Comment, Declaration, |
455 | 3 | SubHeading, Attributes, GetterName, SetterName, IsOptional, |
456 | 3 | IsFromSystemHeader); |
457 | 34 | Record->ParentInformation = APIRecord::HierarchyInformation( |
458 | 34 | Container->USR, Container->Name, Container->getKind(), Container); |
459 | 34 | USRBasedLookupTable.insert({USR, Record.get()}); |
460 | 34 | return Container->Properties.emplace_back(std::move(Record)).get(); |
461 | 34 | } |
462 | | |
463 | | ObjCInstanceVariableRecord *APISet::addObjCInstanceVariable( |
464 | | ObjCContainerRecord *Container, StringRef Name, StringRef USR, |
465 | | PresumedLoc Loc, AvailabilitySet Availabilities, const DocComment &Comment, |
466 | | DeclarationFragments Declaration, DeclarationFragments SubHeading, |
467 | 1 | ObjCInstanceVariableRecord::AccessControl Access, bool IsFromSystemHeader) { |
468 | 1 | auto Record = std::make_unique<ObjCInstanceVariableRecord>( |
469 | 1 | USR, Name, Loc, std::move(Availabilities), Comment, Declaration, |
470 | 1 | SubHeading, Access, IsFromSystemHeader); |
471 | 1 | Record->ParentInformation = APIRecord::HierarchyInformation( |
472 | 1 | Container->USR, Container->Name, Container->getKind(), Container); |
473 | 1 | USRBasedLookupTable.insert({USR, Record.get()}); |
474 | 1 | return Container->Ivars.emplace_back(std::move(Record)).get(); |
475 | 1 | } |
476 | | |
477 | | ObjCProtocolRecord *APISet::addObjCProtocol(StringRef Name, StringRef USR, |
478 | | PresumedLoc Loc, |
479 | | AvailabilitySet Availabilities, |
480 | | const DocComment &Comment, |
481 | | DeclarationFragments Declaration, |
482 | | DeclarationFragments SubHeading, |
483 | 15 | bool IsFromSystemHeader) { |
484 | 15 | return addTopLevelRecord(USRBasedLookupTable, ObjCProtocols, USR, Name, Loc, |
485 | 15 | std::move(Availabilities), Comment, Declaration, |
486 | 15 | SubHeading, IsFromSystemHeader); |
487 | 15 | } |
488 | | |
489 | | MacroDefinitionRecord * |
490 | | APISet::addMacroDefinition(StringRef Name, StringRef USR, PresumedLoc Loc, |
491 | | DeclarationFragments Declaration, |
492 | | DeclarationFragments SubHeading, |
493 | 24 | bool IsFromSystemHeader) { |
494 | 24 | return addTopLevelRecord(USRBasedLookupTable, Macros, USR, Name, Loc, |
495 | 24 | Declaration, SubHeading, IsFromSystemHeader); |
496 | 24 | } |
497 | | |
498 | | TypedefRecord * |
499 | | APISet::addTypedef(StringRef Name, StringRef USR, PresumedLoc Loc, |
500 | | AvailabilitySet Availabilities, const DocComment &Comment, |
501 | | DeclarationFragments Declaration, |
502 | | DeclarationFragments SubHeading, |
503 | 21 | SymbolReference UnderlyingType, bool IsFromSystemHeader) { |
504 | 21 | return addTopLevelRecord(USRBasedLookupTable, Typedefs, USR, Name, Loc, |
505 | 21 | std::move(Availabilities), Comment, Declaration, |
506 | 21 | SubHeading, UnderlyingType, IsFromSystemHeader); |
507 | 21 | } |
508 | | |
509 | 74 | APIRecord *APISet::findRecordForUSR(StringRef USR) const { |
510 | 74 | if (USR.empty()) |
511 | 0 | return nullptr; |
512 | | |
513 | 74 | return USRBasedLookupTable.lookup(USR); |
514 | 74 | } |
515 | | |
516 | 332 | StringRef APISet::recordUSR(const Decl *D) { |
517 | 332 | SmallString<128> USR; |
518 | 332 | index::generateUSRForDecl(D, USR); |
519 | 332 | return copyString(USR); |
520 | 332 | } |
521 | | |
522 | | StringRef APISet::recordUSRForMacro(StringRef Name, SourceLocation SL, |
523 | 24 | const SourceManager &SM) { |
524 | 24 | SmallString<128> USR; |
525 | 24 | index::generateUSRForMacro(Name, SL, SM, USR); |
526 | 24 | return copyString(USR); |
527 | 24 | } |
528 | | |
529 | 516 | StringRef APISet::copyString(StringRef String) { |
530 | 516 | if (String.empty()) |
531 | 4 | return {}; |
532 | | |
533 | | // No need to allocate memory and copy if the string has already been stored. |
534 | 512 | if (StringAllocator.identifyObject(String.data())) |
535 | 0 | return String; |
536 | | |
537 | 512 | void *Ptr = StringAllocator.Allocate(String.size(), 1); |
538 | 512 | memcpy(Ptr, String.data(), String.size()); |
539 | 512 | return StringRef(reinterpret_cast<const char *>(Ptr), String.size()); |
540 | 512 | } |
541 | | |
542 | 255 | APIRecord::~APIRecord() {} |
543 | 40 | ObjCContainerRecord::~ObjCContainerRecord() {} |
544 | 27 | ObjCMethodRecord::~ObjCMethodRecord() {} |
545 | 30 | ObjCPropertyRecord::~ObjCPropertyRecord() {} |
546 | 12 | CXXMethodRecord::~CXXMethodRecord() {} |
547 | | |
548 | 0 | void GlobalFunctionRecord::anchor() {} |
549 | 0 | void GlobalVariableRecord::anchor() {} |
550 | 0 | void EnumConstantRecord::anchor() {} |
551 | 0 | void EnumRecord::anchor() {} |
552 | 0 | void StructFieldRecord::anchor() {} |
553 | 0 | void StructRecord::anchor() {} |
554 | 0 | void CXXFieldRecord::anchor() {} |
555 | 0 | void CXXClassRecord::anchor() {} |
556 | 0 | void CXXConstructorRecord::anchor() {} |
557 | 0 | void CXXDestructorRecord::anchor() {} |
558 | 0 | void CXXInstanceMethodRecord::anchor() {} |
559 | 0 | void CXXStaticMethodRecord::anchor() {} |
560 | 0 | void ObjCInstancePropertyRecord::anchor() {} |
561 | 0 | void ObjCClassPropertyRecord::anchor() {} |
562 | 0 | void ObjCInstanceVariableRecord::anchor() {} |
563 | 0 | void ObjCInstanceMethodRecord::anchor() {} |
564 | 0 | void ObjCClassMethodRecord::anchor() {} |
565 | 0 | void ObjCCategoryRecord::anchor() {} |
566 | 0 | void ObjCInterfaceRecord::anchor() {} |
567 | 0 | void ObjCProtocolRecord::anchor() {} |
568 | 0 | void MacroDefinitionRecord::anchor() {} |
569 | 0 | void TypedefRecord::anchor() {} |