[clang] 1b3a78d - [clang] Use std::size instead of llvm::array_lengthof
Joe Loser via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 8 16:21:13 PDT 2022
Author: Joe Loser
Date: 2022-09-08T17:20:25-06:00
New Revision: 1b3a78d1d534550b2f85a81b2e9ac6d7a94a478e
URL: https://github.com/llvm/llvm-project/commit/1b3a78d1d534550b2f85a81b2e9ac6d7a94a478e
DIFF: https://github.com/llvm/llvm-project/commit/1b3a78d1d534550b2f85a81b2e9ac6d7a94a478e.diff
LOG: [clang] Use std::size instead of llvm::array_lengthof
LLVM contains a helpful function for getting the size of a C-style
array: `llvm::array_lengthof`. This is useful prior to C++17, but not as
helpful for C++17 or later: `std::size` already has support for C-style
arrays.
Change call sites to use `std::size` instead. Leave the few call sites that
use a locally defined `array_lengthof` that are meant to test previous bugs
with NTTPs in clang analyzer and SemaTemplate.
Differential Revision: https://reviews.llvm.org/D133520
Added:
Modified:
clang/include/clang/AST/OpenMPClause.h
clang/lib/AST/AttrDocTable.cpp
clang/lib/AST/CommentCommandTraits.cpp
clang/lib/Basic/DiagnosticIDs.cpp
clang/lib/Basic/Targets/NVPTX.h
clang/lib/CodeGen/CGExpr.cpp
clang/lib/CodeGen/CGObjC.cpp
clang/lib/Driver/ToolChains/Darwin.cpp
clang/lib/Driver/Types.cpp
clang/lib/Frontend/PrintPreprocessedOutput.cpp
clang/lib/Parse/ParseDecl.cpp
clang/lib/Sema/DeclSpec.cpp
clang/lib/Sema/ParsedAttr.cpp
clang/unittests/AST/CommentLexer.cpp
clang/unittests/AST/CommentParser.cpp
clang/unittests/AST/DeclPrinterTest.cpp
clang/unittests/Tooling/CompilationDatabaseTest.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/AST/OpenMPClause.h b/clang/include/clang/AST/OpenMPClause.h
index fd6f50e31bfe1..23b4a9517192c 100644
--- a/clang/include/clang/AST/OpenMPClause.h
+++ b/clang/include/clang/AST/OpenMPClause.h
@@ -5785,12 +5785,11 @@ class OMPMapClause final : public OMPMappableExprListClause<OMPMapClause>,
/*SupportsMapper=*/true, &MapperQualifierLoc,
&MapperIdInfo),
MapType(MapType), MapTypeIsImplicit(MapTypeIsImplicit), MapLoc(MapLoc) {
- assert(llvm::array_lengthof(MapTypeModifiers) == MapModifiers.size() &&
+ assert(std::size(MapTypeModifiers) == MapModifiers.size() &&
"Unexpected number of map type modifiers.");
llvm::copy(MapModifiers, std::begin(MapTypeModifiers));
- assert(llvm::array_lengthof(MapTypeModifiersLoc) ==
- MapModifiersLoc.size() &&
+ assert(std::size(MapTypeModifiersLoc) == MapModifiersLoc.size() &&
"Unexpected number of map type modifier locations.");
llvm::copy(MapModifiersLoc, std::begin(MapTypeModifiersLoc));
}
@@ -6707,12 +6706,11 @@ class OMPToClause final : public OMPMappableExprListClause<OMPToClause>,
: OMPMappableExprListClause(llvm::omp::OMPC_to, Locs, Sizes,
/*SupportsMapper=*/true, &MapperQualifierLoc,
&MapperIdInfo) {
- assert(llvm::array_lengthof(MotionModifiers) == TheMotionModifiers.size() &&
+ assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
"Unexpected number of motion modifiers.");
llvm::copy(TheMotionModifiers, std::begin(MotionModifiers));
- assert(llvm::array_lengthof(MotionModifiersLoc) ==
- TheMotionModifiersLoc.size() &&
+ assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
"Unexpected number of motion modifier locations.");
llvm::copy(TheMotionModifiersLoc, std::begin(MotionModifiersLoc));
}
@@ -6909,12 +6907,11 @@ class OMPFromClause final
: OMPMappableExprListClause(llvm::omp::OMPC_from, Locs, Sizes,
/*SupportsMapper=*/true, &MapperQualifierLoc,
&MapperIdInfo) {
- assert(llvm::array_lengthof(MotionModifiers) == TheMotionModifiers.size() &&
+ assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
"Unexpected number of motion modifiers.");
llvm::copy(TheMotionModifiers, std::begin(MotionModifiers));
- assert(llvm::array_lengthof(MotionModifiersLoc) ==
- TheMotionModifiersLoc.size() &&
+ assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
"Unexpected number of motion modifier locations.");
llvm::copy(TheMotionModifiersLoc, std::begin(MotionModifiersLoc));
}
diff --git a/clang/lib/AST/AttrDocTable.cpp b/clang/lib/AST/AttrDocTable.cpp
index 3bfedac8b8f13..df7e3d63a6c35 100644
--- a/clang/lib/AST/AttrDocTable.cpp
+++ b/clang/lib/AST/AttrDocTable.cpp
@@ -21,7 +21,7 @@ static const llvm::StringRef AttrDoc[] = {
};
llvm::StringRef clang::Attr::getDocumentation(clang::attr::Kind K) {
- if(K < llvm::array_lengthof(AttrDoc))
+ if (K < std::size(AttrDoc))
return AttrDoc[K];
return "";
}
diff --git a/clang/lib/AST/CommentCommandTraits.cpp b/clang/lib/AST/CommentCommandTraits.cpp
index bdc0dd47fb7d2..a37a0e18432cb 100644
--- a/clang/lib/AST/CommentCommandTraits.cpp
+++ b/clang/lib/AST/CommentCommandTraits.cpp
@@ -16,8 +16,8 @@ namespace comments {
#include "clang/AST/CommentCommandInfo.inc"
CommandTraits::CommandTraits(llvm::BumpPtrAllocator &Allocator,
- const CommentOptions &CommentOptions) :
- NextID(llvm::array_lengthof(Commands)), Allocator(Allocator) {
+ const CommentOptions &CommentOptions)
+ : NextID(std::size(Commands)), Allocator(Allocator) {
registerCommentOptions(CommentOptions);
}
@@ -115,7 +115,7 @@ const CommandInfo *CommandTraits::registerBlockCommand(StringRef CommandName) {
const CommandInfo *CommandTraits::getBuiltinCommandInfo(
unsigned CommandID) {
- if (CommandID < llvm::array_lengthof(Commands))
+ if (CommandID < std::size(Commands))
return &Commands[CommandID];
return nullptr;
}
@@ -131,7 +131,7 @@ const CommandInfo *CommandTraits::getRegisteredCommandInfo(
const CommandInfo *CommandTraits::getRegisteredCommandInfo(
unsigned CommandID) const {
- return RegisteredCommands[CommandID - llvm::array_lengthof(Commands)];
+ return RegisteredCommands[CommandID - std::size(Commands)];
}
} // end namespace comments
diff --git a/clang/lib/Basic/DiagnosticIDs.cpp b/clang/lib/Basic/DiagnosticIDs.cpp
index 8e2593b103d15..abdb73f33eb5d 100644
--- a/clang/lib/Basic/DiagnosticIDs.cpp
+++ b/clang/lib/Basic/DiagnosticIDs.cpp
@@ -202,7 +202,7 @@ const StaticDiagInfoRec StaticDiagInfo[] = {
} // namespace
-static const unsigned StaticDiagInfoSize = llvm::array_lengthof(StaticDiagInfo);
+static const unsigned StaticDiagInfoSize = std::size(StaticDiagInfo);
/// GetDiagInfo - Return the StaticDiagInfoRec entry for the specified DiagID,
/// or null if the ID is invalid.
@@ -317,7 +317,7 @@ static const StaticDiagCategoryRec CategoryNameTable[] = {
/// getNumberOfCategories - Return the number of categories
unsigned DiagnosticIDs::getNumberOfCategories() {
- return llvm::array_lengthof(CategoryNameTable) - 1;
+ return std::size(CategoryNameTable) - 1;
}
/// getCategoryNameFromID - Given a category ID, return the name of the
diff --git a/clang/lib/Basic/Targets/NVPTX.h b/clang/lib/Basic/Targets/NVPTX.h
index 589f24f4bb03e..7909bd07843e7 100644
--- a/clang/lib/Basic/Targets/NVPTX.h
+++ b/clang/lib/Basic/Targets/NVPTX.h
@@ -159,7 +159,7 @@ class LLVM_LIBRARY_VISIBILITY NVPTXTargetInfo : public TargetInfo {
/// DWARF.
Optional<unsigned>
getDWARFAddressSpace(unsigned AddressSpace) const override {
- if (AddressSpace >= llvm::array_lengthof(NVPTXDWARFAddrSpaceMap) ||
+ if (AddressSpace >= std::size(NVPTXDWARFAddrSpaceMap) ||
NVPTXDWARFAddrSpaceMap[AddressSpace] < 0)
return llvm::None;
return NVPTXDWARFAddrSpaceMap[AddressSpace];
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index 6878255c48acb..d512459051750 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -3297,7 +3297,7 @@ void CodeGenFunction::EmitCheck(
assert(IsSanitizerScope);
assert(Checked.size() > 0);
assert(CheckHandler >= 0 &&
- size_t(CheckHandler) < llvm::array_lengthof(SanitizerHandlers));
+ size_t(CheckHandler) < std::size(SanitizerHandlers));
const StringRef CheckName = SanitizerHandlers[CheckHandler].Name;
llvm::Value *FatalCond = nullptr;
diff --git a/clang/lib/CodeGen/CGObjC.cpp b/clang/lib/CodeGen/CGObjC.cpp
index 1b6acb2b72122..d2959deae24f8 100644
--- a/clang/lib/CodeGen/CGObjC.cpp
+++ b/clang/lib/CodeGen/CGObjC.cpp
@@ -1749,7 +1749,7 @@ void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){
&CGM.getContext().Idents.get("count")
};
Selector FastEnumSel =
- CGM.getContext().Selectors.getSelector(llvm::array_lengthof(II), &II[0]);
+ CGM.getContext().Selectors.getSelector(std::size(II), &II[0]);
QualType ItemsTy =
getContext().getConstantArrayType(getContext().getObjCIdType(),
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index b060a6af6145b..7d83948369f87 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1809,7 +1809,7 @@ getDeploymentTargetFromEnvironmentVariables(const Driver &TheDriver,
"WATCHOS_DEPLOYMENT_TARGET",
"DRIVERKIT_DEPLOYMENT_TARGET",
};
- static_assert(llvm::array_lengthof(EnvVars) == Darwin::LastDarwinPlatform + 1,
+ static_assert(std::size(EnvVars) == Darwin::LastDarwinPlatform + 1,
"Missing platform");
for (const auto &I : llvm::enumerate(llvm::makeArrayRef(EnvVars))) {
if (char *Env = ::getenv(I.value()))
@@ -1830,11 +1830,11 @@ getDeploymentTargetFromEnvironmentVariables(const Driver &TheDriver,
Targets[Darwin::TvOS] = "";
} else {
// Don't allow conflicts in any other platform.
- unsigned FirstTarget = llvm::array_lengthof(Targets);
- for (unsigned I = 0; I != llvm::array_lengthof(Targets); ++I) {
+ unsigned FirstTarget = std::size(Targets);
+ for (unsigned I = 0; I != std::size(Targets); ++I) {
if (Targets[I].empty())
continue;
- if (FirstTarget == llvm::array_lengthof(Targets))
+ if (FirstTarget == std::size(Targets))
FirstTarget = I;
else
TheDriver.Diag(diag::err_drv_conflicting_deployment_targets)
diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp
index 66da6fe97059a..6e30bb744b4fb 100644
--- a/clang/lib/Driver/Types.cpp
+++ b/clang/lib/Driver/Types.cpp
@@ -42,7 +42,7 @@ static constexpr TypeInfo TypeInfos[] = {
#include "clang/Driver/Types.def"
#undef TYPE
};
-static const unsigned numTypes = llvm::array_lengthof(TypeInfos);
+static const unsigned numTypes = std::size(TypeInfos);
static const TypeInfo &getInfo(unsigned id) {
assert(id > 0 && id - 1 < numTypes && "Invalid Type ID.");
diff --git a/clang/lib/Frontend/PrintPreprocessedOutput.cpp b/clang/lib/Frontend/PrintPreprocessedOutput.cpp
index e3bd7178aefee..d81a11a4e3c36 100644
--- a/clang/lib/Frontend/PrintPreprocessedOutput.cpp
+++ b/clang/lib/Frontend/PrintPreprocessedOutput.cpp
@@ -877,7 +877,7 @@ static void PrintPreprocessedTokens(Preprocessor &PP, Token &Tok,
} else if (Tok.isLiteral() && !Tok.needsCleaning() &&
Tok.getLiteralData()) {
OS.write(Tok.getLiteralData(), Tok.getLength());
- } else if (Tok.getLength() < llvm::array_lengthof(Buffer)) {
+ } else if (Tok.getLength() < std::size(Buffer)) {
const char *TokPtr = Buffer;
unsigned Len = PP.getSpelling(Tok, TokPtr);
OS.write(TokPtr, Len);
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index c502fc5e01019..b18f5f2a85e3d 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -1417,7 +1417,7 @@ void Parser::ParseExternalSourceSymbolAttribute(
ArgsUnion Args[] = {Language.get(), DefinedInExpr.get(),
GeneratedDeclaration};
Attrs.addNew(&ExternalSourceSymbol, SourceRange(Loc, T.getCloseLocation()),
- ScopeName, ScopeLoc, Args, llvm::array_lengthof(Args), Syntax);
+ ScopeName, ScopeLoc, Args, std::size(Args), Syntax);
}
/// Parse the contents of the "objc_bridge_related" attribute.
@@ -1538,7 +1538,7 @@ void Parser::ParseSwiftNewTypeAttribute(
ArgsUnion Args[] = {SwiftType};
Attrs.addNew(&AttrName, SourceRange(AttrNameLoc, T.getCloseLocation()),
- ScopeName, ScopeLoc, Args, llvm::array_lengthof(Args), Syntax);
+ ScopeName, ScopeLoc, Args, std::size(Args), Syntax);
}
void Parser::ParseTypeTagForDatatypeAttribute(IdentifierInfo &AttrName,
diff --git a/clang/lib/Sema/DeclSpec.cpp b/clang/lib/Sema/DeclSpec.cpp
index af31105d13434..6875d3d97c282 100644
--- a/clang/lib/Sema/DeclSpec.cpp
+++ b/clang/lib/Sema/DeclSpec.cpp
@@ -239,7 +239,7 @@ DeclaratorChunk DeclaratorChunk::getFunction(bool hasProto,
// is already used (consider a function returning a function pointer) or too
// small (function with too many parameters), go to the heap.
if (!TheDeclarator.InlineStorageUsed &&
- NumParams <= llvm::array_lengthof(TheDeclarator.InlineParams)) {
+ NumParams <= std::size(TheDeclarator.InlineParams)) {
I.Fun.Params = TheDeclarator.InlineParams;
new (I.Fun.Params) ParamInfo[NumParams];
I.Fun.DeleteParams = false;
@@ -308,8 +308,7 @@ void Declarator::setDecompositionBindings(
// Allocate storage for bindings and stash them away.
if (Bindings.size()) {
- if (!InlineStorageUsed &&
- Bindings.size() <= llvm::array_lengthof(InlineBindings)) {
+ if (!InlineStorageUsed && Bindings.size() <= std::size(InlineBindings)) {
BindingGroup.Bindings = InlineBindings;
BindingGroup.DeleteBindings = false;
InlineStorageUsed = true;
diff --git a/clang/lib/Sema/ParsedAttr.cpp b/clang/lib/Sema/ParsedAttr.cpp
index 4b9a694270c59..5560a195b6763 100644
--- a/clang/lib/Sema/ParsedAttr.cpp
+++ b/clang/lib/Sema/ParsedAttr.cpp
@@ -111,7 +111,7 @@ namespace {
const ParsedAttrInfo &ParsedAttrInfo::get(const AttributeCommonInfo &A) {
// If we have a ParsedAttrInfo for this ParsedAttr then return that.
- if ((size_t)A.getParsedKind() < llvm::array_lengthof(AttrInfoMap))
+ if ((size_t)A.getParsedKind() < std::size(AttrInfoMap))
return *AttrInfoMap[A.getParsedKind()];
// If this is an ignored attribute then return an appropriate ParsedAttrInfo.
diff --git a/clang/unittests/AST/CommentLexer.cpp b/clang/unittests/AST/CommentLexer.cpp
index 456473e1753b6..1e7bad89898f4 100644
--- a/clang/unittests/AST/CommentLexer.cpp
+++ b/clang/unittests/AST/CommentLexer.cpp
@@ -91,7 +91,7 @@ TEST_F(CommentLexerTest, Basic2) {
const char *Sources[] = {
"//", "///", "//!", "///<", "//!<"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -107,7 +107,7 @@ TEST_F(CommentLexerTest, Basic3) {
const char *Sources[] = {
"/**/", "/***/", "/*!*/", "/**<*/", "/*!<*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -126,7 +126,7 @@ TEST_F(CommentLexerTest, Basic4) {
"// Meow\n", "// Meow\r\n", "//! Meow\r",
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -146,7 +146,7 @@ TEST_F(CommentLexerTest, Basic5) {
"/* Meow*/", "/** Meow*/", "/*! Meow*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -169,7 +169,7 @@ TEST_F(CommentLexerTest, Basic6) {
"// Aaa\\\r" " Bbb\\ \r" " Ccc?" "?/\r"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -248,7 +248,7 @@ TEST_F(CommentLexerTest, Basic7) {
// A command marker followed by comment end.
TEST_F(CommentLexerTest, DoxygenCommand1) {
const char *Sources[] = { "//@", "///@", "//!@" };
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -265,7 +265,7 @@ TEST_F(CommentLexerTest, DoxygenCommand1) {
// A command marker followed by comment end.
TEST_F(CommentLexerTest, DoxygenCommand2) {
const char *Sources[] = { "/*@*/", "/**@*/", "/*!@*/"};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -283,7 +283,7 @@ TEST_F(CommentLexerTest, DoxygenCommand2) {
// A command marker followed by comment end.
TEST_F(CommentLexerTest, DoxygenCommand3) {
const char *Sources[] = { "/*\\*/", "/**\\*/" };
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -311,12 +311,12 @@ TEST_F(CommentLexerTest, DoxygenCommand4) {
"::", ""
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
- ASSERT_EQ(array_lengthof(Text), Toks.size());
+ ASSERT_EQ(std::size(Text), Toks.size());
for (size_t j = 0, e = Toks.size(); j != e; j++) {
if(Toks[j].is(tok::text)) {
@@ -578,7 +578,7 @@ TEST_F(CommentLexerTest, VerbatimBlock1) {
"/** \\verbatim\\endverbatim*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -645,7 +645,7 @@ TEST_F(CommentLexerTest, VerbatimBlock4) {
"/** Meow \\verbatim aaa \\endverbatim*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -676,7 +676,7 @@ TEST_F(CommentLexerTest, VerbatimBlock5) {
"/** Meow \\verbatim aaa */"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -901,7 +901,7 @@ TEST_F(CommentLexerTest, VerbatimLine1) {
"/** \\fn*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -926,7 +926,7 @@ TEST_F(CommentLexerTest, VerbatimLine2) {
"/** \\fn void *foo(const char *zzz = \"\\$\");*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -1052,7 +1052,7 @@ TEST_F(CommentLexerTest, HTML4) {
"// <img "
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -1169,7 +1169,7 @@ TEST_F(CommentLexerTest, HTML9) {
"// <img src "
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -1195,7 +1195,7 @@ TEST_F(CommentLexerTest, HTML10) {
"// <img src ="
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -1225,7 +1225,7 @@ TEST_F(CommentLexerTest, HTML11) {
"// <img src = \'"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -1284,7 +1284,7 @@ TEST_F(CommentLexerTest, HTML13) {
"// <img src=\'val\\\"\\'val\'"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -1315,7 +1315,7 @@ TEST_F(CommentLexerTest, HTML14) {
"// <img src=\'val\\\"\\'val\'>"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -1348,7 +1348,7 @@ TEST_F(CommentLexerTest, HTML15) {
"// <img />"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -1373,7 +1373,7 @@ TEST_F(CommentLexerTest, HTML16) {
"// <img / Aaa"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@@ -1797,7 +1797,7 @@ TEST_F(CommentLexerTest, HTMLCharacterReferences16) {
"// ="
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
diff --git a/clang/unittests/AST/CommentParser.cpp b/clang/unittests/AST/CommentParser.cpp
index 62c461a00d16c..ab2157dcb71b0 100644
--- a/clang/unittests/AST/CommentParser.cpp
+++ b/clang/unittests/AST/CommentParser.cpp
@@ -664,7 +664,7 @@ TEST_F(CommentParserTest, ParagraphSplitting1) {
"*/"),
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -801,7 +801,7 @@ TEST_F(CommentParserTest, ParamCommand3) {
"// Bbb\n")
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -831,7 +831,7 @@ TEST_F(CommentParserTest, ParamCommand4) {
"// Bbb\n"),
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -861,7 +861,7 @@ TEST_F(CommentParserTest, ParamCommand5) {
"// Bbb\n"),
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -892,7 +892,7 @@ TEST_F(CommentParserTest, ParamCommand6) {
"// Bbb\n"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -947,7 +947,7 @@ TEST_F(CommentParserTest, TParamCommand1) {
"// Bbb\n"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -1081,7 +1081,7 @@ TEST_F(CommentParserTest, HTML1) {
"// <a >"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 1));
@@ -1103,7 +1103,7 @@ TEST_F(CommentParserTest, HTML2) {
"// <br />"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 1));
@@ -1127,7 +1127,7 @@ TEST_F(CommentParserTest, HTML3) {
"// <a href >",
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 1));
@@ -1149,7 +1149,7 @@ TEST_F(CommentParserTest, HTML4) {
"// <a href=\"bbb\">",
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 1));
@@ -1172,7 +1172,7 @@ TEST_F(CommentParserTest, HTML5) {
"// </a >"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 1));
@@ -1285,7 +1285,7 @@ TEST_F(CommentParserTest, VerbatimBlock5) {
" *\\endverbatim*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 1));
@@ -1309,7 +1309,7 @@ TEST_F(CommentParserTest, VerbatimBlock6) {
" * \\endverbatim*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -1336,7 +1336,7 @@ TEST_F(CommentParserTest, VerbatimBlock7) {
" * \\endverbatim*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -1364,7 +1364,7 @@ TEST_F(CommentParserTest, VerbatimBlock8) {
" * Bbb\n"
" * \\endverbatim*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -1387,7 +1387,7 @@ TEST_F(CommentParserTest, VerbatimLine1) {
"// \\fn\n"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -1405,7 +1405,7 @@ TEST_F(CommentParserTest, VerbatimLine2) {
"/** \\fn void *foo(const char *zzz = \"\\$\");*/"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
@@ -1424,7 +1424,7 @@ TEST_F(CommentParserTest, Deprecated) {
"/// @deprecated\n"
};
- for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
+ for (size_t i = 0, e = std::size(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));
diff --git a/clang/unittests/AST/DeclPrinterTest.cpp b/clang/unittests/AST/DeclPrinterTest.cpp
index 11dca6ed68167..0e09ab2a7bba8 100644
--- a/clang/unittests/AST/DeclPrinterTest.cpp
+++ b/clang/unittests/AST/DeclPrinterTest.cpp
@@ -731,7 +731,7 @@ TEST(DeclPrinter, TestCXXMethodDecl_Operator1) {
"()", "[]"
};
- for (unsigned i = 0, e = llvm::array_lengthof(OperatorNames); i != e; ++i) {
+ for (unsigned i = 0, e = std::size(OperatorNames); i != e; ++i) {
SmallString<128> Code;
Code.append("struct Z { void operator");
Code.append(OperatorNames[i]);
@@ -754,7 +754,7 @@ TEST(DeclPrinter, TestCXXMethodDecl_Operator2) {
"~", "!", "++", "--", "->"
};
- for (unsigned i = 0, e = llvm::array_lengthof(OperatorNames); i != e; ++i) {
+ for (unsigned i = 0, e = std::size(OperatorNames); i != e; ++i) {
SmallString<128> Code;
Code.append("struct Z { void operator");
Code.append(OperatorNames[i]);
diff --git a/clang/unittests/Tooling/CompilationDatabaseTest.cpp b/clang/unittests/Tooling/CompilationDatabaseTest.cpp
index 8194dd3953c20..3314ecd36c193 100644
--- a/clang/unittests/Tooling/CompilationDatabaseTest.cpp
+++ b/clang/unittests/Tooling/CompilationDatabaseTest.cpp
@@ -642,7 +642,7 @@ TEST(ParseFixedCompilationDatabase, HandlesPositionalArgsSyntaxOnly) {
// Adjust the given command line arguments to ensure that any positional
// arguments in them are stripped.
const char *Argv[] = {"--", "somefile.cpp", "-fsyntax-only", "-DDEF3"};
- int Argc = llvm::array_lengthof(Argv);
+ int Argc = std::size(Argv);
std::string ErrorMessage;
std::unique_ptr<CompilationDatabase> Database =
FixedCompilationDatabase::loadFromCommandLine(Argc, Argv, ErrorMessage);
More information about the cfe-commits
mailing list