[clang-tools-extra] [clang-doc][NFC] Prefer static functions for internal APIs (PR #136391)
Paul Kirth via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 18 17:32:15 PDT 2025
https://github.com/ilovepi updated https://github.com/llvm/llvm-project/pull/136391
>From d160e0734d426ba59f6f7b965580a8670c4601a3 Mon Sep 17 00:00:00 2001
From: Paul Kirth <paulkirth at google.com>
Date: Fri, 18 Apr 2025 17:13:37 -0700
Subject: [PATCH] [clang-doc] Prefer static functions for internal APIs
---
clang-tools-extra/clang-doc/BitcodeReader.cpp | 128 +++++++++---------
1 file changed, 67 insertions(+), 61 deletions(-)
diff --git a/clang-tools-extra/clang-doc/BitcodeReader.cpp b/clang-tools-extra/clang-doc/BitcodeReader.cpp
index 1f2fb0a8b2b85..a4d713cb8c064 100644
--- a/clang-tools-extra/clang-doc/BitcodeReader.cpp
+++ b/clang-tools-extra/clang-doc/BitcodeReader.cpp
@@ -18,14 +18,15 @@ namespace doc {
using Record = llvm::SmallVector<uint64_t, 1024>;
// This implements decode for SmallString.
-llvm::Error decodeRecord(const Record &R, llvm::SmallVectorImpl<char> &Field,
- llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R,
+ llvm::SmallVectorImpl<char> &Field,
+ llvm::StringRef Blob) {
Field.assign(Blob.begin(), Blob.end());
return llvm::Error::success();
}
-llvm::Error decodeRecord(const Record &R, SymbolID &Field,
- llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R, SymbolID &Field,
+ llvm::StringRef Blob) {
if (R[0] != BitCodeConstants::USRHashSize)
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"incorrect USR size");
@@ -37,12 +38,14 @@ llvm::Error decodeRecord(const Record &R, SymbolID &Field,
return llvm::Error::success();
}
-llvm::Error decodeRecord(const Record &R, bool &Field, llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R, bool &Field,
+ llvm::StringRef Blob) {
Field = R[0] != 0;
return llvm::Error::success();
}
-llvm::Error decodeRecord(const Record &R, int &Field, llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R, int &Field,
+ llvm::StringRef Blob) {
if (R[0] > INT_MAX)
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"integer too large to parse");
@@ -50,8 +53,8 @@ llvm::Error decodeRecord(const Record &R, int &Field, llvm::StringRef Blob) {
return llvm::Error::success();
}
-llvm::Error decodeRecord(const Record &R, AccessSpecifier &Field,
- llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R, AccessSpecifier &Field,
+ llvm::StringRef Blob) {
switch (R[0]) {
case AS_public:
case AS_private:
@@ -65,8 +68,8 @@ llvm::Error decodeRecord(const Record &R, AccessSpecifier &Field,
}
}
-llvm::Error decodeRecord(const Record &R, TagTypeKind &Field,
- llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R, TagTypeKind &Field,
+ llvm::StringRef Blob) {
switch (static_cast<TagTypeKind>(R[0])) {
case TagTypeKind::Struct:
case TagTypeKind::Interface:
@@ -80,8 +83,8 @@ llvm::Error decodeRecord(const Record &R, TagTypeKind &Field,
"invalid value for TagTypeKind");
}
-llvm::Error decodeRecord(const Record &R, std::optional<Location> &Field,
- llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R, std::optional<Location> &Field,
+ llvm::StringRef Blob) {
if (R[0] > INT_MAX)
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"integer too large to parse");
@@ -89,8 +92,8 @@ llvm::Error decodeRecord(const Record &R, std::optional<Location> &Field,
return llvm::Error::success();
}
-llvm::Error decodeRecord(const Record &R, InfoType &Field,
- llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R, InfoType &Field,
+ llvm::StringRef Blob) {
switch (auto IT = static_cast<InfoType>(R[0])) {
case InfoType::IT_namespace:
case InfoType::IT_record:
@@ -105,8 +108,8 @@ llvm::Error decodeRecord(const Record &R, InfoType &Field,
"invalid value for InfoType");
}
-llvm::Error decodeRecord(const Record &R, FieldId &Field,
- llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R, FieldId &Field,
+ llvm::StringRef Blob) {
switch (auto F = static_cast<FieldId>(R[0])) {
case FieldId::F_namespace:
case FieldId::F_parent:
@@ -122,16 +125,17 @@ llvm::Error decodeRecord(const Record &R, FieldId &Field,
"invalid value for FieldId");
}
-llvm::Error decodeRecord(const Record &R,
- llvm::SmallVectorImpl<llvm::SmallString<16>> &Field,
- llvm::StringRef Blob) {
+static llvm::Error
+decodeRecord(const Record &R,
+ llvm::SmallVectorImpl<llvm::SmallString<16>> &Field,
+ llvm::StringRef Blob) {
Field.push_back(Blob);
return llvm::Error::success();
}
-llvm::Error decodeRecord(const Record &R,
- llvm::SmallVectorImpl<Location> &Field,
- llvm::StringRef Blob) {
+static llvm::Error decodeRecord(const Record &R,
+ llvm::SmallVectorImpl<Location> &Field,
+ llvm::StringRef Blob) {
if (R[0] > INT_MAX)
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"integer too large to parse");
@@ -139,16 +143,16 @@ llvm::Error decodeRecord(const Record &R,
return llvm::Error::success();
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- const unsigned VersionNo) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, const unsigned VersionNo) {
if (ID == VERSION && R[0] == VersionNo)
return llvm::Error::success();
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"mismatched bitcode version number");
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- NamespaceInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, NamespaceInfo *I) {
switch (ID) {
case NAMESPACE_USR:
return decodeRecord(R, I->USR, Blob);
@@ -162,8 +166,8 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- RecordInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, RecordInfo *I) {
switch (ID) {
case RECORD_USR:
return decodeRecord(R, I->USR, Blob);
@@ -185,8 +189,8 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- BaseRecordInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, BaseRecordInfo *I) {
switch (ID) {
case BASE_RECORD_USR:
return decodeRecord(R, I->USR, Blob);
@@ -208,8 +212,8 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- EnumInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, EnumInfo *I) {
switch (ID) {
case ENUM_USR:
return decodeRecord(R, I->USR, Blob);
@@ -227,8 +231,8 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- TypedefInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, TypedefInfo *I) {
switch (ID) {
case TYPEDEF_USR:
return decodeRecord(R, I->USR, Blob);
@@ -244,8 +248,8 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- EnumValueInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, EnumValueInfo *I) {
switch (ID) {
case ENUM_VALUE_NAME:
return decodeRecord(R, I->Name, Blob);
@@ -259,8 +263,8 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- FunctionInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, FunctionInfo *I) {
switch (ID) {
case FUNCTION_USR:
return decodeRecord(R, I->USR, Blob);
@@ -280,13 +284,13 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- TypeInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, TypeInfo *I) {
return llvm::Error::success();
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- FieldTypeInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, FieldTypeInfo *I) {
switch (ID) {
case FIELD_TYPE_NAME:
return decodeRecord(R, I->Name, Blob);
@@ -298,8 +302,8 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- MemberTypeInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, MemberTypeInfo *I) {
switch (ID) {
case MEMBER_TYPE_NAME:
return decodeRecord(R, I->Name, Blob);
@@ -311,8 +315,8 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- CommentInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, CommentInfo *I) {
switch (ID) {
case COMMENT_KIND:
return decodeRecord(R, I->Kind, Blob);
@@ -342,8 +346,8 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- Reference *I, FieldId &F) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, Reference *I, FieldId &F) {
switch (ID) {
case REFERENCE_USR:
return decodeRecord(R, I->USR, Blob);
@@ -363,30 +367,31 @@ llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
}
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- TemplateInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, TemplateInfo *I) {
// Currently there are no child records of TemplateInfo (only child blocks).
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"invalid field for TemplateParamInfo");
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- TemplateSpecializationInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob,
+ TemplateSpecializationInfo *I) {
if (ID == TEMPLATE_SPECIALIZATION_OF)
return decodeRecord(R, I->SpecializationOf, Blob);
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"invalid field for TemplateParamInfo");
}
-llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
- TemplateParamInfo *I) {
+static llvm::Error parseRecord(const Record &R, unsigned ID,
+ llvm::StringRef Blob, TemplateParamInfo *I) {
if (ID == TEMPLATE_PARAM_CONTENTS)
return decodeRecord(R, I->Contents, Blob);
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"invalid field for TemplateParamInfo");
}
-template <typename T> llvm::Expected<CommentInfo *> getCommentInfo(T I) {
+template <typename T> static llvm::Expected<CommentInfo *> getCommentInfo(T I) {
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"invalid type cannot contain CommentInfo");
}
@@ -433,7 +438,7 @@ llvm::Expected<CommentInfo *> getCommentInfo(std::unique_ptr<CommentInfo> &I) {
// the parent block to set it. The template specializations define what to do
// for each supported parent block.
template <typename T, typename TTypeInfo>
-llvm::Error addTypeInfo(T I, TTypeInfo &&TI) {
+static llvm::Error addTypeInfo(T I, TTypeInfo &&TI) {
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"invalid type cannot contain TypeInfo");
}
@@ -468,7 +473,8 @@ template <> llvm::Error addTypeInfo(TypedefInfo *I, TypeInfo &&T) {
return llvm::Error::success();
}
-template <typename T> llvm::Error addReference(T I, Reference &&R, FieldId F) {
+template <typename T>
+static llvm::Error addReference(T I, Reference &&R, FieldId F) {
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"invalid type cannot contain Reference");
}
@@ -584,7 +590,7 @@ template <> llvm::Error addReference(RecordInfo *I, Reference &&R, FieldId F) {
}
template <typename T, typename ChildInfoType>
-void addChild(T I, ChildInfoType &&R) {
+static void addChild(T I, ChildInfoType &&R) {
llvm::errs() << "invalid child type for info";
exit(1);
}
@@ -625,7 +631,7 @@ template <> void addChild(BaseRecordInfo *I, FunctionInfo &&R) {
// TemplateParam children. These go into either a TemplateInfo (for template
// parameters) or TemplateSpecializationInfo (for the specialization's
// parameters).
-template <typename T> void addTemplateParam(T I, TemplateParamInfo &&P) {
+template <typename T> static void addTemplateParam(T I, TemplateParamInfo &&P) {
llvm::errs() << "invalid container for template parameter";
exit(1);
}
@@ -638,7 +644,7 @@ void addTemplateParam(TemplateSpecializationInfo *I, TemplateParamInfo &&P) {
}
// Template info. These apply to either records or functions.
-template <typename T> void addTemplate(T I, TemplateInfo &&P) {
+template <typename T> static void addTemplate(T I, TemplateInfo &&P) {
llvm::errs() << "invalid container for template info";
exit(1);
}
@@ -651,7 +657,7 @@ template <> void addTemplate(FunctionInfo *I, TemplateInfo &&P) {
// Template specializations go only into template records.
template <typename T>
-void addTemplateSpecialization(T I, TemplateSpecializationInfo &&TSI) {
+static void addTemplateSpecialization(T I, TemplateSpecializationInfo &&TSI) {
llvm::errs() << "invalid container for template specialization info";
exit(1);
}
More information about the cfe-commits
mailing list