aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/ExtractAPI/API.cpp
diff options
context:
space:
mode:
authorDaniel Grumberg <dgrumberg@apple.com>2022-04-07 13:50:28 +0100
committerDaniel Grumberg <dgrumberg@apple.com>2022-04-11 19:05:24 +0100
commit236b6a0eb41a163510e65664e2160f599287326b (patch)
tree287e71d587ccc098c9d5cf5a2485920136ae7b08 /clang/lib/ExtractAPI/API.cpp
parent2d0475e37169bee3d969c4e4b445e86c08539769 (diff)
downloadllvm-236b6a0eb41a163510e65664e2160f599287326b.zip
llvm-236b6a0eb41a163510e65664e2160f599287326b.tar.gz
llvm-236b6a0eb41a163510e65664e2160f599287326b.tar.bz2
[clang][extract-api] Emit "functionSignature" in SGF for ObjC methods.
- Split GlobalRecord into two distinct types to be able to introduce has_function_signature type trait. - Add has_function_signature type trait. - Serialize function signatures as part of serializeAPIRecord for records that are known to have a function signature. Differential Revision: https://reviews.llvm.org/D123304
Diffstat (limited to 'clang/lib/ExtractAPI/API.cpp')
-rw-r--r--clang/lib/ExtractAPI/API.cpp35
1 files changed, 12 insertions, 23 deletions
diff --git a/clang/lib/ExtractAPI/API.cpp b/clang/lib/ExtractAPI/API.cpp
index 1c33bbf..10d723d 100644
--- a/clang/lib/ExtractAPI/API.cpp
+++ b/clang/lib/ExtractAPI/API.cpp
@@ -41,34 +41,22 @@ RecordTy *addTopLevelRecord(APISet::RecordMap<RecordTy> &RecordMap,
} // namespace
-GlobalRecord *APISet::addGlobal(GVKind Kind, StringRef Name, StringRef USR,
- PresumedLoc Loc,
- const AvailabilityInfo &Availability,
- LinkageInfo Linkage, const DocComment &Comment,
- DeclarationFragments Fragments,
- DeclarationFragments SubHeading,
- FunctionSignature Signature) {
- return addTopLevelRecord(Globals, Name, USR, Loc, Availability, Linkage,
- Comment, Fragments, SubHeading, Kind, Signature);
-}
-
-GlobalRecord *
+GlobalVariableRecord *
APISet::addGlobalVar(StringRef Name, StringRef USR, PresumedLoc Loc,
const AvailabilityInfo &Availability, LinkageInfo Linkage,
const DocComment &Comment, DeclarationFragments Fragments,
DeclarationFragments SubHeading) {
- return addGlobal(GVKind::Variable, Name, USR, Loc, Availability, Linkage,
- Comment, Fragments, SubHeading, {});
+ return addTopLevelRecord(GlobalVariables, Name, USR, Loc, Availability,
+ Linkage, Comment, Fragments, SubHeading);
}
-GlobalRecord *
-APISet::addFunction(StringRef Name, StringRef USR, PresumedLoc Loc,
- const AvailabilityInfo &Availability, LinkageInfo Linkage,
- const DocComment &Comment, DeclarationFragments Fragments,
- DeclarationFragments SubHeading,
- FunctionSignature Signature) {
- return addGlobal(GVKind::Function, Name, USR, Loc, Availability, Linkage,
- Comment, Fragments, SubHeading, Signature);
+GlobalFunctionRecord *APISet::addGlobalFunction(
+ StringRef Name, StringRef USR, PresumedLoc Loc,
+ const AvailabilityInfo &Availability, LinkageInfo Linkage,
+ const DocComment &Comment, DeclarationFragments Fragments,
+ DeclarationFragments SubHeading, FunctionSignature Signature) {
+ return addTopLevelRecord(GlobalFunctions, Name, USR, Loc, Availability,
+ Linkage, Comment, Fragments, SubHeading, Signature);
}
EnumConstantRecord *APISet::addEnumConstant(
@@ -229,7 +217,8 @@ APIRecord::~APIRecord() {}
ObjCContainerRecord::~ObjCContainerRecord() {}
-void GlobalRecord::anchor() {}
+void GlobalFunctionRecord::anchor() {}
+void GlobalVariableRecord::anchor() {}
void EnumConstantRecord::anchor() {}
void EnumRecord::anchor() {}
void StructFieldRecord::anchor() {}