================
@@ -788,6 +789,47 @@ bool clang::api_notes::parseAndDumpAPINotes(StringRef YI,
namespace {
using namespace api_notes;
+struct KnownFunctionSelector {
+ llvm::StringRef Name;
+ llvm::ArrayRef<llvm::StringRef> Parameters;
+};
+
+static bool equalParameterSelectors(llvm::ArrayRef<llvm::StringRef> LHS,
+ llvm::ArrayRef<llvm::StringRef> RHS) {
+ if (LHS.size() != RHS.size())
+ return false;
+
+ for (unsigned I = 0, E = LHS.size(); I != E; ++I)
+ if (LHS[I] != RHS[I])
+ return false;
+
+ return true;
+}
+
+static bool
+hasFunctionSelector(llvm::ArrayRef<KnownFunctionSelector> KnownSelectors,
+ llvm::StringRef Name,
+ llvm::ArrayRef<llvm::StringRef> Parameters) {
+ for (const KnownFunctionSelector &Known : KnownSelectors)
+ if (Known.Name == Name &&
+ equalParameterSelectors(Known.Parameters, Parameters))
+ return true;
+
+ return false;
+}
+
+static std::string
+formatWhereParameters(llvm::ArrayRef<llvm::StringRef> Parameters) {
+ std::string Result = "[";
----------------
Xazax-hun wrote:
I wonder if this is reimplementing `llvm::interleaveComma`.
https://github.com/llvm/llvm-project/pull/209408
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits