From 5644137ea0696164c5b5835179b1ec450d508c88 Mon Sep 17 00:00:00 2001 From: Martin Boehme Date: Fri, 15 May 2020 14:22:11 +0200 Subject: [PATCH] Eliminate duplication of code for adding empty argument names. --- lib/ClangImporter/ImportName.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/ClangImporter/ImportName.cpp b/lib/ClangImporter/ImportName.cpp index 65df344f664a0..1a02a454ede0d 100644 --- a/lib/ClangImporter/ImportName.cpp +++ b/lib/ClangImporter/ImportName.cpp @@ -1366,6 +1366,16 @@ static bool suppressFactoryMethodAsInit(const clang::ObjCMethodDecl *method, initKind == CtorInitializerKind::ConvenienceFactory); } +static void +addEmptyArgNamesForCxxFunc(const clang::FunctionDecl *funcDecl, + SmallVectorImpl &argumentNames) { + for (size_t i = 0; i < funcDecl->param_size(); ++i) { + argumentNames.push_back(StringRef()); + } + if (funcDecl->isVariadic()) + argumentNames.push_back(StringRef()); +} + ImportedName NameImporter::importNameImpl(const clang::NamedDecl *D, ImportNameVersion version, clang::DeclarationName givenName) { @@ -1604,13 +1614,8 @@ ImportedName NameImporter::importNameImpl(const clang::NamedDecl *D, isFunction = true; result.info.initKind = CtorInitializerKind::Designated; baseName = "init"; - // Add empty argument names. if (auto ctor = dyn_cast(D)) { - for (size_t i = 0; i < ctor->param_size(); ++i) { - argumentNames.push_back(StringRef()); - } - if (ctor->isVariadic()) - argumentNames.push_back(StringRef()); + addEmptyArgNamesForCxxFunc(ctor, argumentNames); } break; @@ -1684,16 +1689,9 @@ ImportedName NameImporter::importNameImpl(const clang::NamedDecl *D, } } - // For C functions, create empty argument names. if (auto function = dyn_cast(D)) { isFunction = true; - params = {function->param_begin(), function->param_end()}; - for (auto param : params) { - (void)param; - argumentNames.push_back(StringRef()); - } - if (function->isVariadic()) - argumentNames.push_back(StringRef()); + addEmptyArgNamesForCxxFunc(function, argumentNames); } break;