Revert "Rename llvm::array_lengthof into llvm::size to match std::size from C++17"

This reverts commit ef82063207.

- It conflicts with the existing llvm::size in STLExtras, which will now
  never be called.
- Calling it without llvm:: breaks C++17 compat
This commit is contained in:
Benjamin Kramer 2022-01-26 16:55:53 +01:00
parent 297bbf1062
commit f15014ff54
143 changed files with 382 additions and 386 deletions

View File

@ -5772,11 +5772,11 @@ private:
/*SupportsMapper=*/true, &MapperQualifierLoc,
&MapperIdInfo),
MapType(MapType), MapTypeIsImplicit(MapTypeIsImplicit), MapLoc(MapLoc) {
assert(llvm::size(MapTypeModifiers) == MapModifiers.size() &&
assert(llvm::array_lengthof(MapTypeModifiers) == MapModifiers.size() &&
"Unexpected number of map type modifiers.");
llvm::copy(MapModifiers, std::begin(MapTypeModifiers));
assert(llvm::size(MapTypeModifiersLoc) ==
assert(llvm::array_lengthof(MapTypeModifiersLoc) ==
MapModifiersLoc.size() &&
"Unexpected number of map type modifier locations.");
llvm::copy(MapModifiersLoc, std::begin(MapTypeModifiersLoc));
@ -6694,11 +6694,11 @@ class OMPToClause final : public OMPMappableExprListClause<OMPToClause>,
: OMPMappableExprListClause(llvm::omp::OMPC_to, Locs, Sizes,
/*SupportsMapper=*/true, &MapperQualifierLoc,
&MapperIdInfo) {
assert(llvm::size(MotionModifiers) == TheMotionModifiers.size() &&
assert(llvm::array_lengthof(MotionModifiers) == TheMotionModifiers.size() &&
"Unexpected number of motion modifiers.");
llvm::copy(TheMotionModifiers, std::begin(MotionModifiers));
assert(llvm::size(MotionModifiersLoc) ==
assert(llvm::array_lengthof(MotionModifiersLoc) ==
TheMotionModifiersLoc.size() &&
"Unexpected number of motion modifier locations.");
llvm::copy(TheMotionModifiersLoc, std::begin(MotionModifiersLoc));
@ -6896,11 +6896,11 @@ class OMPFromClause final
: OMPMappableExprListClause(llvm::omp::OMPC_from, Locs, Sizes,
/*SupportsMapper=*/true, &MapperQualifierLoc,
&MapperIdInfo) {
assert(llvm::size(MotionModifiers) == TheMotionModifiers.size() &&
assert(llvm::array_lengthof(MotionModifiers) == TheMotionModifiers.size() &&
"Unexpected number of motion modifiers.");
llvm::copy(TheMotionModifiers, std::begin(MotionModifiers));
assert(llvm::size(MotionModifiersLoc) ==
assert(llvm::array_lengthof(MotionModifiersLoc) ==
TheMotionModifiersLoc.size() &&
"Unexpected number of motion modifier locations.");
llvm::copy(TheMotionModifiersLoc, std::begin(MotionModifiersLoc));

View File

@ -6594,7 +6594,7 @@ QualType ASTContext::getPromotedIntegerType(QualType Promotable) const {
uint64_t FromSize = getTypeSize(BT);
QualType PromoteTypes[] = { IntTy, UnsignedIntTy, LongTy, UnsignedLongTy,
LongLongTy, UnsignedLongLongTy };
for (size_t Idx = 0; Idx < llvm::size(PromoteTypes); ++Idx) {
for (size_t Idx = 0; Idx < llvm::array_lengthof(PromoteTypes); ++Idx) {
uint64_t ToSize = getTypeSize(PromoteTypes[Idx]);
if (FromSize < ToSize ||
(FromSize == ToSize &&

View File

@ -21,7 +21,7 @@ static const llvm::StringRef AttrDoc[] = {
};
llvm::StringRef clang::Attr::getDocumentation(clang::attr::Kind K) {
if(K < llvm::size(AttrDoc))
if(K < llvm::array_lengthof(AttrDoc))
return AttrDoc[K];
return "";
}

View File

@ -17,7 +17,7 @@ namespace comments {
CommandTraits::CommandTraits(llvm::BumpPtrAllocator &Allocator,
const CommentOptions &CommentOptions) :
NextID(llvm::size(Commands)), Allocator(Allocator) {
NextID(llvm::array_lengthof(Commands)), Allocator(Allocator) {
registerCommentOptions(CommentOptions);
}
@ -115,7 +115,7 @@ const CommandInfo *CommandTraits::registerBlockCommand(StringRef CommandName) {
const CommandInfo *CommandTraits::getBuiltinCommandInfo(
unsigned CommandID) {
if (CommandID < llvm::size(Commands))
if (CommandID < llvm::array_lengthof(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::size(Commands)];
return RegisteredCommands[CommandID - llvm::array_lengthof(Commands)];
}
} // end namespace comments

View File

@ -202,7 +202,7 @@ const StaticDiagInfoRec StaticDiagInfo[] = {
} // namespace
static const unsigned StaticDiagInfoSize = llvm::size(StaticDiagInfo);
static const unsigned StaticDiagInfoSize = llvm::array_lengthof(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::size(CategoryNameTable) - 1;
return llvm::array_lengthof(CategoryNameTable) - 1;
}
/// getCategoryNameFromID - Given a category ID, return the name of the

View File

@ -159,7 +159,7 @@ public:
/// DWARF.
Optional<unsigned>
getDWARFAddressSpace(unsigned AddressSpace) const override {
if (AddressSpace >= llvm::size(NVPTXDWARFAddrSpaceMap) ||
if (AddressSpace >= llvm::array_lengthof(NVPTXDWARFAddrSpaceMap) ||
NVPTXDWARFAddrSpaceMap[AddressSpace] < 0)
return llvm::None;
return NVPTXDWARFAddrSpaceMap[AddressSpace];

View File

@ -3206,7 +3206,7 @@ void CodeGenFunction::EmitCheck(
assert(IsSanitizerScope);
assert(Checked.size() > 0);
assert(CheckHandler >= 0 &&
size_t(CheckHandler) < llvm::size(SanitizerHandlers));
size_t(CheckHandler) < llvm::array_lengthof(SanitizerHandlers));
const StringRef CheckName = SanitizerHandlers[CheckHandler].Name;
llvm::Value *FatalCond = nullptr;

View File

@ -1749,7 +1749,7 @@ void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){
&CGM.getContext().Idents.get("count")
};
Selector FastEnumSel =
CGM.getContext().Selectors.getSelector(llvm::size(II), &II[0]);
CGM.getContext().Selectors.getSelector(llvm::array_lengthof(II), &II[0]);
QualType ItemsTy =
getContext().getConstantArrayType(getContext().getObjCIdType(),

View File

@ -278,7 +278,7 @@ void Compilation::initCompilationForDiagnostics() {
options::OPT_o, options::OPT_MD, options::OPT_MMD, options::OPT_M,
options::OPT_MM, options::OPT_MF, options::OPT_MG, options::OPT_MJ,
options::OPT_MQ, options::OPT_MT, options::OPT_MV};
for (unsigned i = 0, e = llvm::size(OutputOpts); i != e; ++i) {
for (unsigned i = 0, e = llvm::array_lengthof(OutputOpts); i != e; ++i) {
if (TranslatedArgs->hasArg(OutputOpts[i]))
TranslatedArgs->eraseArg(OutputOpts[i]);
}

View File

@ -151,7 +151,7 @@ static const DriverSuffix *FindDriverSuffix(StringRef ProgName, size_t &Pos) {
{"flang", "--driver-mode=flang"},
};
for (size_t i = 0; i < llvm::size(DriverSuffixes); ++i) {
for (size_t i = 0; i < llvm::array_lengthof(DriverSuffixes); ++i) {
StringRef Suffix(DriverSuffixes[i].Suffix);
if (ProgName.endswith(Suffix)) {
Pos = ProgName.size() - Suffix.size();

View File

@ -1694,7 +1694,7 @@ getDeploymentTargetFromEnvironmentVariables(const Driver &TheDriver,
"TVOS_DEPLOYMENT_TARGET",
"WATCHOS_DEPLOYMENT_TARGET",
};
static_assert(llvm::size(EnvVars) == Darwin::LastDarwinPlatform + 1,
static_assert(llvm::array_lengthof(EnvVars) == Darwin::LastDarwinPlatform + 1,
"Missing platform");
for (const auto &I : llvm::enumerate(llvm::makeArrayRef(EnvVars))) {
if (char *Env = ::getenv(I.value()))
@ -1715,11 +1715,11 @@ getDeploymentTargetFromEnvironmentVariables(const Driver &TheDriver,
Targets[Darwin::TvOS] = "";
} else {
// Don't allow conflicts in any other platform.
unsigned FirstTarget = llvm::size(Targets);
for (unsigned I = 0; I != llvm::size(Targets); ++I) {
unsigned FirstTarget = llvm::array_lengthof(Targets);
for (unsigned I = 0; I != llvm::array_lengthof(Targets); ++I) {
if (Targets[I].empty())
continue;
if (FirstTarget == llvm::size(Targets))
if (FirstTarget == llvm::array_lengthof(Targets))
FirstTarget = I;
else
TheDriver.Diag(diag::err_drv_conflicting_deployment_targets)

View File

@ -42,7 +42,7 @@ static constexpr TypeInfo TypeInfos[] = {
#include "clang/Driver/Types.def"
#undef TYPE
};
static const unsigned numTypes = llvm::size(TypeInfos);
static const unsigned numTypes = llvm::array_lengthof(TypeInfos);
static const TypeInfo &getInfo(unsigned id) {
assert(id > 0 && id - 1 < numTypes && "Invalid Type ID.");

View File

@ -863,7 +863,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::size(Buffer)) {
} else if (Tok.getLength() < llvm::array_lengthof(Buffer)) {
const char *TokPtr = Buffer;
unsigned Len = PP.getSpelling(Tok, TokPtr);
OS.write(TokPtr, Len);

View File

@ -1365,7 +1365,7 @@ void Parser::ParseExternalSourceSymbolAttribute(
ArgsUnion Args[] = {Language.get(), DefinedInExpr.get(),
GeneratedDeclaration};
Attrs.addNew(&ExternalSourceSymbol, SourceRange(Loc, T.getCloseLocation()),
ScopeName, ScopeLoc, Args, llvm::size(Args), Syntax);
ScopeName, ScopeLoc, Args, llvm::array_lengthof(Args), Syntax);
}
/// Parse the contents of the "objc_bridge_related" attribute.
@ -1493,7 +1493,7 @@ void Parser::ParseSwiftNewTypeAttribute(
ArgsUnion Args[] = {SwiftType};
Attrs.addNew(&AttrName, SourceRange(AttrNameLoc, T.getCloseLocation()),
ScopeName, ScopeLoc, Args, llvm::size(Args), Syntax);
ScopeName, ScopeLoc, Args, llvm::array_lengthof(Args), Syntax);
}

View File

@ -188,7 +188,7 @@ static OpenMPDirectiveKindExWrapper parseOpenMPDirectiveKind(Parser &P) {
if (DKind == OMPD_unknown)
return OMPD_unknown;
for (unsigned I = 0; I < llvm::size(F); ++I) {
for (unsigned I = 0; I < llvm::array_lengthof(F); ++I) {
if (DKind != F[I][0])
continue;

View File

@ -238,7 +238,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::size(TheDeclarator.InlineParams)) {
NumParams <= llvm::array_lengthof(TheDeclarator.InlineParams)) {
I.Fun.Params = TheDeclarator.InlineParams;
new (I.Fun.Params) ParamInfo[NumParams];
I.Fun.DeleteParams = false;
@ -308,7 +308,7 @@ void Declarator::setDecompositionBindings(
// Allocate storage for bindings and stash them away.
if (Bindings.size()) {
if (!InlineStorageUsed &&
Bindings.size() <= llvm::size(InlineBindings)) {
Bindings.size() <= llvm::array_lengthof(InlineBindings)) {
BindingGroup.Bindings = InlineBindings;
BindingGroup.DeleteBindings = false;
InlineStorageUsed = true;

View File

@ -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::size(AttrInfoMap))
if ((size_t)A.getParsedKind() < llvm::array_lengthof(AttrInfoMap))
return *AttrInfoMap[A.getParsedKind()];
// If this is an ignored attribute then return an appropriate ParsedAttrInfo.

View File

@ -4726,7 +4726,7 @@ static void AddKeywordsToConsumer(Sema &SemaRef,
"extern", "inline", "static", "typedef"
};
const unsigned NumCTypeSpecs = llvm::size(CTypeSpecs);
const unsigned NumCTypeSpecs = llvm::array_lengthof(CTypeSpecs);
for (unsigned I = 0; I != NumCTypeSpecs; ++I)
Consumer.addKeywordResult(CTypeSpecs[I]);
@ -4780,7 +4780,7 @@ static void AddKeywordsToConsumer(Sema &SemaRef,
static const char *const CXXExprs[] = {
"delete", "new", "operator", "throw", "typeid"
};
const unsigned NumCXXExprs = llvm::size(CXXExprs);
const unsigned NumCXXExprs = llvm::array_lengthof(CXXExprs);
for (unsigned I = 0; I != NumCXXExprs; ++I)
Consumer.addKeywordResult(CXXExprs[I]);
@ -4806,7 +4806,7 @@ static void AddKeywordsToConsumer(Sema &SemaRef,
// Statements.
static const char *const CStmts[] = {
"do", "else", "for", "goto", "if", "return", "switch", "while" };
const unsigned NumCStmts = llvm::size(CStmts);
const unsigned NumCStmts = llvm::array_lengthof(CStmts);
for (unsigned I = 0; I != NumCStmts; ++I)
Consumer.addKeywordResult(CStmts[I]);

View File

@ -14357,7 +14357,7 @@ TreeTransform<Derived>::RebuildArrayType(QualType ElementType,
SemaRef.Context.UnsignedIntTy, SemaRef.Context.UnsignedLongTy,
SemaRef.Context.UnsignedLongLongTy, SemaRef.Context.UnsignedInt128Ty
};
const unsigned NumTypes = llvm::size(Types);
const unsigned NumTypes = llvm::array_lengthof(Types);
QualType SizeType;
for (unsigned I = 0; I != NumTypes; ++I)
if (Size->getBitWidth() == SemaRef.Context.getIntWidth(Types[I])) {

View File

@ -34,13 +34,13 @@ int main(){
// <rdar://problem/11949235>
template<class T, unsigned N>
inline unsigned size(T (&)[N]) {
inline unsigned array_lengthof(T (&)[N]) {
return N;
}
void testNonTypeTemplateInstantiation() {
const char *S[] = { "a", "b" };
clang_analyzer_eval(size(S) == 2);
clang_analyzer_eval(array_lengthof(S) == 2);
#ifndef NO_INLINE
// expected-warning@-2 {{TRUE}}
#else

View File

@ -86,7 +86,7 @@ namespace PR7985 {
template<int N> struct integral_c { };
template <typename T, int N>
integral_c<N> size(T (&x)[N]) { return integral_c<N>(); } // expected-note 2{{candidate template ignored: could not match 'T[N]' against 'const Data<}}
integral_c<N> array_lengthof(T (&x)[N]) { return integral_c<N>(); } // expected-note 2{{candidate template ignored: could not match 'T[N]' against 'const Data<}}
template<typename T>
struct Data {
@ -105,14 +105,14 @@ namespace PR7985 {
const Data<float*> Description<float*>::data[];
void test() {
integral_c<1> ic1 = size(Description<int>::data);
(void)sizeof(size(Description<float>::data));
integral_c<1> ic1 = array_lengthof(Description<int>::data);
(void)sizeof(array_lengthof(Description<float>::data));
(void)sizeof(size( // expected-error{{no matching function for call to 'size'}}
(void)sizeof(array_lengthof( // expected-error{{no matching function for call to 'array_lengthof'}}
Description<int*>::data // expected-note{{in instantiation of static data member 'PR7985::Description<int *>::data' requested here}}
));
size(Description<float*>::data); // expected-error{{no matching function for call to 'size'}}
array_lengthof(Description<float*>::data); // expected-error{{no matching function for call to 'array_lengthof'}}
}
}

View File

@ -91,7 +91,7 @@ TEST_F(CommentLexerTest, Basic2) {
const char *Sources[] = {
"//", "///", "//!", "///<", "//!<"
};
for (size_t i = 0, e = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
ASSERT_EQ(size(Text), Toks.size());
ASSERT_EQ(array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);
@ -1797,7 +1797,7 @@ TEST_F(CommentLexerTest, HTMLCharacterReferences16) {
"// &#X3D;"
};
for (size_t i = 0, e = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
std::vector<Token> Toks;
lexString(Sources[i], Toks);

View File

@ -664,7 +664,7 @@ TEST_F(CommentParserTest, ParagraphSplitting1) {
"*/"),
};
for (size_t i = 0, e = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(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 = size(Sources); i != e; i++) {
for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) {
FullComment *FC = parseString(Sources[i]);
ASSERT_TRUE(HasChildCount(FC, 2));

View File

@ -731,7 +731,7 @@ TEST(DeclPrinter, TestCXXMethodDecl_Operator1) {
"()", "[]"
};
for (unsigned i = 0, e = llvm::size(OperatorNames); i != e; ++i) {
for (unsigned i = 0, e = llvm::array_lengthof(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::size(OperatorNames); i != e; ++i) {
for (unsigned i = 0, e = llvm::array_lengthof(OperatorNames); i != e; ++i) {
SmallString<128> Code;
Code.append("struct Z { void operator");
Code.append(OperatorNames[i]);

View File

@ -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::size(Argv);
int Argc = llvm::array_lengthof(Argv);
std::string ErrorMessage;
std::unique_ptr<CompilationDatabase> Database =
FixedCompilationDatabase::loadFromCommandLine(Argc, Argv, ErrorMessage);

View File

@ -947,7 +947,7 @@ MergeChunk::MergeChunk(uint32_t alignment)
void MergeChunk::addSection(COFFLinkerContext &ctx, SectionChunk *c) {
assert(isPowerOf2_32(c->getAlignment()));
uint8_t p2Align = llvm::Log2_32(c->getAlignment());
assert(p2Align < size(ctx.mergeChunkInstances));
assert(p2Align < array_lengthof(ctx.mergeChunkInstances));
auto *&mc = ctx.mergeChunkInstances[p2Align];
if (!mc)
mc = make<MergeChunk>(c->getAlignment());

View File

@ -77,7 +77,7 @@ static_assert((sizeof(g_format_infos) / sizeof(g_format_infos[0])) ==
kNumFormats,
"All formats must have a corresponding info entry.");
static uint32_t g_num_format_infos = llvm::size(g_format_infos);
static uint32_t g_num_format_infos = llvm::array_lengthof(g_format_infos);
static bool GetFormatFromFormatChar(char format_char, Format &format) {
for (uint32_t i = 0; i < g_num_format_infos; ++i) {

View File

@ -108,7 +108,7 @@ Status MainLoop::RunImpl::Poll() {
EV_SET(&in_events[i++], fd.first, EVFILT_READ, EV_ADD, 0, 0, 0);
num_events = kevent(loop.m_kqueue, in_events.data(), in_events.size(),
out_events, llvm::size(out_events), nullptr);
out_events, llvm::array_lengthof(out_events), nullptr);
if (num_events < 0) {
if (errno == EINTR) {

View File

@ -188,7 +188,7 @@ size_t ConnectionGenericFile::Read(void *dst, size_t dst_len,
.count()
: INFINITE;
DWORD wait_result =
::WaitForMultipleObjects(llvm::size(m_event_handles),
::WaitForMultipleObjects(llvm::array_lengthof(m_event_handles),
m_event_handles, FALSE, milliseconds);
// All of the events are manual reset events, so make sure we reset them
// to non-signalled.

View File

@ -549,7 +549,7 @@ void CommandInterpreter::LoadCommandDictionary() {
"breakpoint set --name '%1'"}};
// clang-format on
size_t num_regexes = llvm::size(break_regexes);
size_t num_regexes = llvm::array_lengthof(break_regexes);
std::unique_ptr<CommandObjectRegexCommand> break_regex_cmd_up(
new CommandObjectRegexCommand(

View File

@ -1187,7 +1187,7 @@ static const RegisterInfo g_register_infos[] = {
}};
static const uint32_t k_num_register_infos =
llvm::size(g_register_infos);
llvm::array_lengthof(g_register_infos);
const lldb_private::RegisterInfo *
ABIMacOSX_arm::GetRegisterInfoArray(uint32_t &count) {
@ -1235,7 +1235,7 @@ bool ABIMacOSX_arm::PrepareTrivialCall(Thread &thread, addr_t sp,
llvm::ArrayRef<addr_t>::iterator ai = args.begin(), ae = args.end();
for (size_t i = 0; i < llvm::size(reg_names); ++i) {
for (size_t i = 0; i < llvm::array_lengthof(reg_names); ++i) {
if (ai == ae)
break;

View File

@ -1190,7 +1190,7 @@ static const RegisterInfo g_register_infos[] = {
}};
static const uint32_t k_num_register_infos =
llvm::size(g_register_infos);
llvm::array_lengthof(g_register_infos);
const lldb_private::RegisterInfo *
ABISysV_arm::GetRegisterInfoArray(uint32_t &count) {
@ -1240,7 +1240,7 @@ bool ABISysV_arm::PrepareTrivialCall(Thread &thread, addr_t sp,
llvm::ArrayRef<addr_t>::iterator ai = args.begin(), ae = args.end();
for (size_t i = 0; i < llvm::size(reg_names); ++i) {
for (size_t i = 0; i < llvm::array_lengthof(reg_names); ++i) {
if (ai == ae)
break;

View File

@ -503,7 +503,7 @@ static const RegisterInfo g_register_infos[] = {
};
static const uint32_t k_num_register_infos =
llvm::size(g_register_infos);
llvm::array_lengthof(g_register_infos);
const lldb_private::RegisterInfo *
ABISysV_mips::GetRegisterInfoArray(uint32_t &count) {
@ -559,7 +559,7 @@ bool ABISysV_mips::PrepareTrivialCall(Thread &thread, addr_t sp,
llvm::ArrayRef<addr_t>::iterator ai = args.begin(), ae = args.end();
// Write arguments to registers
for (size_t i = 0; i < llvm::size(reg_names); ++i) {
for (size_t i = 0; i < llvm::array_lengthof(reg_names); ++i) {
if (ai == ae)
break;

View File

@ -503,7 +503,7 @@ static const RegisterInfo g_register_infos_mips64[] = {
};
static const uint32_t k_num_register_infos =
llvm::size(g_register_infos_mips64);
llvm::array_lengthof(g_register_infos_mips64);
const lldb_private::RegisterInfo *
ABISysV_mips64::GetRegisterInfoArray(uint32_t &count) {

View File

@ -204,7 +204,7 @@ static const RegisterInfo g_register_infos[] = {
}};
static const uint32_t k_num_register_infos =
llvm::size(g_register_infos);
llvm::array_lengthof(g_register_infos);
const lldb_private::RegisterInfo *
ABISysV_ppc::GetRegisterInfoArray(uint32_t &count) {

View File

@ -52,10 +52,10 @@ LLDB_PLUGIN_DEFINE(ABISysV_ppc64)
const lldb_private::RegisterInfo *
ABISysV_ppc64::GetRegisterInfoArray(uint32_t &count) {
if (GetByteOrder() == lldb::eByteOrderLittle) {
count = llvm::size(g_register_infos_ppc64le);
count = llvm::array_lengthof(g_register_infos_ppc64le);
return g_register_infos_ppc64le;
} else {
count = llvm::size(g_register_infos_ppc64);
count = llvm::array_lengthof(g_register_infos_ppc64);
return g_register_infos_ppc64;
}
}

View File

@ -172,7 +172,7 @@ static const RegisterInfo g_register_infos[] = {
};
static const uint32_t k_num_register_infos =
llvm::size(g_register_infos);
llvm::array_lengthof(g_register_infos);
const lldb_private::RegisterInfo *
ABISysV_s390x::GetRegisterInfoArray(uint32_t &count) {

View File

@ -405,7 +405,7 @@ DynamicLoaderDarwinKernel::ReadMachHeader(addr_t addr, Process *process, llvm::M
const uint32_t magicks[] = { llvm::MachO::MH_MAGIC_64, llvm::MachO::MH_MAGIC, llvm::MachO::MH_CIGAM, llvm::MachO::MH_CIGAM_64};
bool found_matching_pattern = false;
for (size_t i = 0; i < llvm::size (magicks); i++)
for (size_t i = 0; i < llvm::array_lengthof (magicks); i++)
if (::memcmp (&header.magic, &magicks[i], sizeof (uint32_t)) == 0)
found_matching_pattern = true;

View File

@ -13198,7 +13198,7 @@ EmulateInstructionARM::GetARMOpcodeForInstruction(const uint32_t opcode,
&EmulateInstructionARM::EmulateRFE, "rfe{<amode>} <Rn>{!}"}
};
static const size_t k_num_arm_opcodes = llvm::size(g_arm_opcodes);
static const size_t k_num_arm_opcodes = llvm::array_lengthof(g_arm_opcodes);
for (size_t i = 0; i < k_num_arm_opcodes; ++i) {
if ((g_arm_opcodes[i].mask & opcode) == g_arm_opcodes[i].value &&
@ -13749,7 +13749,7 @@ EmulateInstructionARM::GetThumbOpcodeForInstruction(const uint32_t opcode,
&EmulateInstructionARM::EmulateUXTH, "uxth<c>.w <Rd>,<Rm>{,<rotation>}"},
};
const size_t k_num_thumb_opcodes = llvm::size(g_thumb_opcodes);
const size_t k_num_thumb_opcodes = llvm::array_lengthof(g_thumb_opcodes);
for (size_t i = 0; i < k_num_thumb_opcodes; ++i) {
if ((g_thumb_opcodes[i].mask & opcode) == g_thumb_opcodes[i].value &&
(g_thumb_opcodes[i].variants & arm_isa) != 0)

View File

@ -52,7 +52,7 @@ using namespace lldb_private;
LLDB_PLUGIN_DEFINE_ADV(EmulateInstructionARM64, InstructionARM64)
static bool LLDBTableGetRegisterInfo(uint32_t reg_num, RegisterInfo &reg_info) {
if (reg_num >= llvm::size(g_register_infos_arm64_le))
if (reg_num >= llvm::array_lengthof(g_register_infos_arm64_le))
return false;
reg_info = g_register_infos_arm64_le[reg_num];
return true;
@ -360,7 +360,7 @@ EmulateInstructionARM64::GetOpcodeForInstruction(const uint32_t opcode) {
"TBNZ <R><t>, #<imm>, <label>"},
};
static const size_t k_num_arm_opcodes = llvm::size(g_opcodes);
static const size_t k_num_arm_opcodes = llvm::array_lengthof(g_opcodes);
for (size_t i = 0; i < k_num_arm_opcodes; ++i) {
if ((g_opcodes[i].mask & opcode) == g_opcodes[i].value)

View File

@ -954,7 +954,7 @@ EmulateInstructionMIPS::GetOpcodeForInstruction(const char *op_name) {
{"JALRS_MM", &EmulateInstructionMIPS::Emulate_JALRS, "JALRS rt, rs"},
};
static const size_t k_num_mips_opcodes = llvm::size(g_opcodes);
static const size_t k_num_mips_opcodes = llvm::array_lengthof(g_opcodes);
for (size_t i = 0; i < k_num_mips_opcodes; ++i) {
if (!strcasecmp(g_opcodes[i].op_name, op_name))

View File

@ -919,7 +919,7 @@ EmulateInstructionMIPS64::GetOpcodeForInstruction(const char *op_name) {
{"BZ_V", &EmulateInstructionMIPS64::Emulate_BZV, "BZ.V wt,s16"},
};
static const size_t k_num_mips_opcodes = llvm::size(g_opcodes);
static const size_t k_num_mips_opcodes = llvm::array_lengthof(g_opcodes);
for (size_t i = 0; i < k_num_mips_opcodes; ++i) {
if (!strcasecmp(g_opcodes[i].op_name, op_name))

View File

@ -59,7 +59,7 @@ bool EmulateInstructionPPC64::SetTargetTriple(const ArchSpec &arch) {
}
static bool LLDBTableGetRegisterInfo(uint32_t reg_num, RegisterInfo &reg_info) {
if (reg_num >= llvm::size(g_register_infos_ppc64le))
if (reg_num >= llvm::array_lengthof(g_register_infos_ppc64le))
return false;
reg_info = g_register_infos_ppc64le[reg_num];
return true;
@ -147,7 +147,7 @@ EmulateInstructionPPC64::GetOpcodeForInstruction(uint32_t opcode) {
"addi RT, RA, SI"},
{0xfc000003, 0xe8000000, &EmulateInstructionPPC64::EmulateLD,
"ld RT, DS(RA)"}};
static const size_t k_num_ppc_opcodes = llvm::size(g_opcodes);
static const size_t k_num_ppc_opcodes = llvm::array_lengthof(g_opcodes);
for (size_t i = 0; i < k_num_ppc_opcodes; ++i) {
if ((g_opcodes[i].mask & opcode) == g_opcodes[i].value)

View File

@ -749,7 +749,7 @@ AppleObjCTrampolineHandler::AppleObjCTrampolineHandler(
// array into a template table, and populate the DispatchFunction
// map from there.
for (size_t i = 0; i != llvm::size(g_dispatch_functions); i++) {
for (size_t i = 0; i != llvm::array_lengthof(g_dispatch_functions); i++) {
ConstString name_const_str(g_dispatch_functions[i].name);
const Symbol *msgSend_symbol =
m_objc_module_sp->FindFirstSymbolWithNameAndType(name_const_str,
@ -769,7 +769,7 @@ AppleObjCTrampolineHandler::AppleObjCTrampolineHandler(
}
// Similarly, cache the addresses of the "optimized dispatch" function.
for (size_t i = 0; i != llvm::size(g_opt_dispatch_names); i++) {
for (size_t i = 0; i != llvm::array_lengthof(g_opt_dispatch_names); i++) {
ConstString name_const_str(g_opt_dispatch_names[i]);
const Symbol *msgSend_symbol =
m_objc_module_sp->FindFirstSymbolWithNameAndType(name_const_str,

View File

@ -574,7 +574,7 @@ bool ObjectFilePECOFF::ParseSectionHeaders(
}
llvm::StringRef ObjectFilePECOFF::GetSectionName(const section_header_t &sect) {
llvm::StringRef hdr_name(sect.name, llvm::size(sect.name));
llvm::StringRef hdr_name(sect.name, llvm::array_lengthof(sect.name));
hdr_name = hdr_name.split('\0').first;
if (hdr_name.consume_front("/")) {
lldb::offset_t stroff;

View File

@ -169,7 +169,7 @@ uint32_t EHProgramBuilder::ConvertMachineToLLDBRegister(uint8_t machine_reg) {
lldb_r8_x86_64, lldb_r9_x86_64, lldb_r10_x86_64, lldb_r11_x86_64,
lldb_r12_x86_64, lldb_r13_x86_64, lldb_r14_x86_64, lldb_r15_x86_64};
if (machine_reg >= llvm::size(machine_to_lldb_register))
if (machine_reg >= llvm::array_lengthof(machine_to_lldb_register))
return LLDB_INVALID_REGNUM;
return machine_to_lldb_register[machine_reg];
@ -184,7 +184,7 @@ uint32_t EHProgramBuilder::ConvertXMMToLLDBRegister(uint8_t xmm_reg) {
lldb_xmm12_x86_64, lldb_xmm13_x86_64, lldb_xmm14_x86_64,
lldb_xmm15_x86_64};
if (xmm_reg >= llvm::size(xmm_to_lldb_register))
if (xmm_reg >= llvm::array_lengthof(xmm_to_lldb_register))
return LLDB_INVALID_REGNUM;
return xmm_to_lldb_register[xmm_reg];

View File

@ -686,7 +686,7 @@ BreakpointSP PlatformDarwin::SetThreadCreationBreakpoint(Target &target) {
"libSystem.B.dylib"};
FileSpecList bp_modules;
for (size_t i = 0; i < llvm::size(g_bp_modules); i++) {
for (size_t i = 0; i < llvm::array_lengthof(g_bp_modules); i++) {
const char *bp_module = g_bp_modules[i];
bp_modules.EmplaceBack(bp_module);
}
@ -695,7 +695,7 @@ BreakpointSP PlatformDarwin::SetThreadCreationBreakpoint(Target &target) {
bool hardware = false;
LazyBool skip_prologue = eLazyBoolNo;
bp_sp = target.CreateBreakpoint(&bp_modules, nullptr, g_bp_names,
llvm::size(g_bp_names),
llvm::array_lengthof(g_bp_names),
eFunctionNameTypeFull, eLanguageTypeUnknown,
0, skip_prologue, internal, hardware);
bp_sp->SetBreakpointKind("thread-creation");

View File

@ -856,7 +856,7 @@ static uint32_t g_exc_regnums[] = {
exc_exception, exc_fsr, exc_far,
};
static size_t k_num_register_infos = llvm::size(g_register_infos);
static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
RegisterContextDarwin_arm::RegisterContextDarwin_arm(
Thread &thread, uint32_t concrete_frame_idx)
@ -897,9 +897,9 @@ const RegisterInfo *RegisterContextDarwin_arm::GetRegisterInfos() {
}
// Number of registers in each register set
const size_t k_num_gpr_registers = llvm::size(g_gpr_regnums);
const size_t k_num_fpu_registers = llvm::size(g_fpu_regnums);
const size_t k_num_exc_registers = llvm::size(g_exc_regnums);
const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums);
const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums);
const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums);
// Register set definitions. The first definitions at register set index of
// zero is for all registers, followed by other registers sets. The register
@ -911,7 +911,7 @@ static const RegisterSet g_reg_sets[] = {
{"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums},
{"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}};
const size_t k_num_regsets = llvm::size(g_reg_sets);
const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets);
size_t RegisterContextDarwin_arm::GetRegisterSetCount() {
return k_num_regsets;

View File

@ -91,7 +91,7 @@ static uint32_t g_fpu_regnums[] = {
static uint32_t g_exc_regnums[] = {exc_far, exc_esr, exc_exception};
static size_t k_num_register_infos =
llvm::size(g_register_infos_arm64_le);
llvm::array_lengthof(g_register_infos_arm64_le);
RegisterContextDarwin_arm64::RegisterContextDarwin_arm64(
Thread &thread, uint32_t concrete_frame_idx)
@ -132,9 +132,9 @@ const RegisterInfo *RegisterContextDarwin_arm64::GetRegisterInfos() {
}
// Number of registers in each register set
const size_t k_num_gpr_registers = llvm::size(g_gpr_regnums);
const size_t k_num_fpu_registers = llvm::size(g_fpu_regnums);
const size_t k_num_exc_registers = llvm::size(g_exc_regnums);
const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums);
const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums);
const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums);
// Register set definitions. The first definitions at register set index of
// zero is for all registers, followed by other registers sets. The register
@ -146,7 +146,7 @@ static const RegisterSet g_reg_sets[] = {
{"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums},
{"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}};
const size_t k_num_regsets = llvm::size(g_reg_sets);
const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets);
size_t RegisterContextDarwin_arm64::GetRegisterSetCount() {
return k_num_regsets;

View File

@ -363,7 +363,7 @@ static RegisterInfo g_register_infos[] = {
nullptr,
}};
static size_t k_num_register_infos = llvm::size(g_register_infos);
static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
RegisterContextDarwin_i386::RegisterContextDarwin_i386(
Thread &thread, uint32_t concrete_frame_idx)
@ -421,9 +421,9 @@ static uint32_t g_fpu_regnums[] = {
static uint32_t g_exc_regnums[] = {exc_trapno, exc_err, exc_faultvaddr};
// Number of registers in each register set
const size_t k_num_gpr_registers = llvm::size(g_gpr_regnums);
const size_t k_num_fpu_registers = llvm::size(g_fpu_regnums);
const size_t k_num_exc_registers = llvm::size(g_exc_regnums);
const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums);
const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums);
const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums);
// Register set definitions. The first definitions at register set index of
// zero is for all registers, followed by other registers sets. The register
@ -435,7 +435,7 @@ static const RegisterSet g_reg_sets[] = {
{"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums},
{"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}};
const size_t k_num_regsets = llvm::size(g_reg_sets);
const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets);
size_t RegisterContextDarwin_i386::GetRegisterSetCount() {
return k_num_regsets;

View File

@ -420,7 +420,7 @@ static RegisterInfo g_register_infos[] = {
nullptr,
}};
static size_t k_num_register_infos = llvm::size(g_register_infos);
static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
RegisterContextDarwin_x86_64::RegisterContextDarwin_x86_64(
Thread &thread, uint32_t concrete_frame_idx)
@ -477,9 +477,9 @@ static uint32_t g_fpu_regnums[] = {
static uint32_t g_exc_regnums[] = {exc_trapno, exc_err, exc_faultvaddr};
// Number of registers in each register set
const size_t k_num_gpr_registers = llvm::size(g_gpr_regnums);
const size_t k_num_fpu_registers = llvm::size(g_fpu_regnums);
const size_t k_num_exc_registers = llvm::size(g_exc_regnums);
const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums);
const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums);
const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums);
// Register set definitions. The first definitions at register set index of
// zero is for all registers, followed by other registers sets. The register
@ -491,7 +491,7 @@ static const RegisterSet g_reg_sets[] = {
{"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums},
{"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}};
const size_t k_num_regsets = llvm::size(g_reg_sets);
const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets);
size_t RegisterContextDarwin_x86_64::GetRegisterSetCount() {
return k_num_regsets;

View File

@ -78,11 +78,11 @@ const RegisterInfo *RegisterContextWindows_i386::GetRegisterInfo() const {
}
uint32_t RegisterContextWindows_i386::GetRegisterCount() const {
return llvm::size(g_register_infos_i386);
return llvm::array_lengthof(g_register_infos_i386);
}
uint32_t RegisterContextWindows_i386::GetUserRegisterCount() const {
return llvm::size(g_register_infos_i386);
return llvm::array_lengthof(g_register_infos_i386);
}
size_t RegisterContextWindows_i386::GetGPRSize() const { return sizeof(GPR); }

View File

@ -141,11 +141,11 @@ const RegisterInfo *RegisterContextWindows_x86_64::GetRegisterInfo() const {
}
uint32_t RegisterContextWindows_x86_64::GetRegisterCount() const {
return llvm::size(g_register_infos_x86_64);
return llvm::array_lengthof(g_register_infos_x86_64);
}
uint32_t RegisterContextWindows_x86_64::GetUserRegisterCount() const {
return llvm::size(g_register_infos_x86_64);
return llvm::array_lengthof(g_register_infos_x86_64);
}
size_t RegisterContextWindows_x86_64::GetGPRSize() const { return sizeof(GPR); }

View File

@ -38,7 +38,7 @@ static const uint32_t g_gpr_regnums_WoW64[] = {
static const RegisterSet g_reg_sets_WoW64[] = {
{"General Purpose Registers", "gpr",
llvm::size(g_gpr_regnums_WoW64) - 1, g_gpr_regnums_WoW64},
llvm::array_lengthof(g_gpr_regnums_WoW64) - 1, g_gpr_regnums_WoW64},
};
enum { k_num_register_sets = 1 };

View File

@ -69,9 +69,9 @@ static_assert(((sizeof g_fpr_regnums_arm / sizeof g_fpr_regnums_arm[0]) - 1) ==
static const RegisterSet g_reg_sets_arm[] = {
{"General Purpose Registers", "gpr",
llvm::size(g_gpr_regnums_arm) - 1, g_gpr_regnums_arm},
llvm::array_lengthof(g_gpr_regnums_arm) - 1, g_gpr_regnums_arm},
{"Floating Point Registers", "fpr",
llvm::size(g_fpr_regnums_arm) - 1, g_fpr_regnums_arm},
llvm::array_lengthof(g_fpr_regnums_arm) - 1, g_fpr_regnums_arm},
};
enum { k_num_register_sets = 2 };

View File

@ -85,9 +85,9 @@ static_assert(((sizeof g_fpr_regnums_arm64 / sizeof g_fpr_regnums_arm64[0]) -
static const RegisterSet g_reg_sets_arm64[] = {
{"General Purpose Registers", "gpr",
llvm::size(g_gpr_regnums_arm64) - 1, g_gpr_regnums_arm64},
llvm::array_lengthof(g_gpr_regnums_arm64) - 1, g_gpr_regnums_arm64},
{"Floating Point Registers", "fpr",
llvm::size(g_fpr_regnums_arm64) - 1, g_fpr_regnums_arm64},
llvm::array_lengthof(g_fpr_regnums_arm64) - 1, g_fpr_regnums_arm64},
};
enum { k_num_register_sets = 2 };

View File

@ -38,7 +38,7 @@ static const uint32_t g_gpr_regnums_i386[] = {
static const RegisterSet g_reg_sets_i386[] = {
{"General Purpose Registers", "gpr",
llvm::size(g_gpr_regnums_i386) - 1, g_gpr_regnums_i386},
llvm::array_lengthof(g_gpr_regnums_i386) - 1, g_gpr_regnums_i386},
};
enum { k_num_register_sets = 1 };

View File

@ -49,9 +49,9 @@ static const uint32_t g_fpr_regnums_x86_64[] = {
static const RegisterSet g_reg_sets_x86_64[] = {
{"General Purpose Registers", "gpr",
llvm::size(g_gpr_regnums_x86_64) - 1, g_gpr_regnums_x86_64},
llvm::array_lengthof(g_gpr_regnums_x86_64) - 1, g_gpr_regnums_x86_64},
{"Floating Point Registers", "fpr",
llvm::size(g_fpr_regnums_x86_64) - 1, g_fpr_regnums_x86_64}};
llvm::array_lengthof(g_fpr_regnums_x86_64) - 1, g_fpr_regnums_x86_64}};
enum { k_num_register_sets = 2 };

View File

@ -41,7 +41,7 @@ using namespace lldb_private;
#include "Plugins/Process/Utility/RegisterInfos_arm.h"
#undef DECLARE_REGISTER_INFOS_ARM_STRUCT
static size_t k_num_register_infos = llvm::size(g_register_infos_arm);
static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos_arm);
// Array of lldb register numbers used to define the set of all General Purpose
// Registers
@ -69,8 +69,8 @@ uint32_t g_fpu_reg_indices[] = {
RegisterSet g_register_sets[] = {
{"General Purpose Registers", "gpr",
llvm::size(g_gpr_reg_indices), g_gpr_reg_indices},
{"Floating Point Registers", "fpu", llvm::size(g_fpu_reg_indices),
llvm::array_lengthof(g_gpr_reg_indices), g_gpr_reg_indices},
{"Floating Point Registers", "fpu", llvm::array_lengthof(g_fpu_reg_indices),
g_fpu_reg_indices},
};
@ -82,7 +82,7 @@ RegisterContextWindows_arm::RegisterContextWindows_arm(
RegisterContextWindows_arm::~RegisterContextWindows_arm() {}
size_t RegisterContextWindows_arm::GetRegisterCount() {
return llvm::size(g_register_infos_arm);
return llvm::array_lengthof(g_register_infos_arm);
}
const RegisterInfo *
@ -93,7 +93,7 @@ RegisterContextWindows_arm::GetRegisterInfoAtIndex(size_t reg) {
}
size_t RegisterContextWindows_arm::GetRegisterSetCount() {
return llvm::size(g_register_sets);
return llvm::array_lengthof(g_register_sets);
}
const RegisterSet *RegisterContextWindows_arm::GetRegisterSet(size_t reg_set) {

View File

@ -45,7 +45,7 @@ using namespace lldb_private;
#undef DECLARE_REGISTER_INFOS_ARM64_STRUCT
static size_t k_num_register_infos =
llvm::size(g_register_infos_arm64_le);
llvm::array_lengthof(g_register_infos_arm64_le);
// Array of lldb register numbers used to define the set of all General Purpose
// Registers
@ -83,8 +83,8 @@ uint32_t g_fpu_reg_indices[] = {
RegisterSet g_register_sets[] = {
{"General Purpose Registers", "gpr",
llvm::size(g_gpr_reg_indices), g_gpr_reg_indices},
{"Floating Point Registers", "fpu", llvm::size(g_fpu_reg_indices),
llvm::array_lengthof(g_gpr_reg_indices), g_gpr_reg_indices},
{"Floating Point Registers", "fpu", llvm::array_lengthof(g_fpu_reg_indices),
g_fpu_reg_indices},
};
@ -96,7 +96,7 @@ RegisterContextWindows_arm64::RegisterContextWindows_arm64(
RegisterContextWindows_arm64::~RegisterContextWindows_arm64() {}
size_t RegisterContextWindows_arm64::GetRegisterCount() {
return llvm::size(g_register_infos_arm64_le);
return llvm::array_lengthof(g_register_infos_arm64_le);
}
const RegisterInfo *
@ -107,7 +107,7 @@ RegisterContextWindows_arm64::GetRegisterInfoAtIndex(size_t reg) {
}
size_t RegisterContextWindows_arm64::GetRegisterSetCount() {
return llvm::size(g_register_sets);
return llvm::array_lengthof(g_register_sets);
}
const RegisterSet *

View File

@ -212,7 +212,7 @@ RegisterInfo g_register_infos[] = {
{DEFINE_FPU_XMM(xmm15)}
};
static size_t k_num_register_infos = llvm::size(g_register_infos);
static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
// Array of lldb register numbers used to define the set of all General Purpose
// Registers
@ -235,9 +235,9 @@ uint32_t g_fpu_reg_indices[] = {
RegisterSet g_register_sets[] = {
{"General Purpose Registers", "gpr",
llvm::size(g_gpr_reg_indices), g_gpr_reg_indices},
llvm::array_lengthof(g_gpr_reg_indices), g_gpr_reg_indices},
{"Floating Point Registers", "fpu",
llvm::size(g_fpu_reg_indices), g_fpu_reg_indices}};
llvm::array_lengthof(g_fpu_reg_indices), g_fpu_reg_indices}};
}
// Constructors and Destructors
@ -248,7 +248,7 @@ RegisterContextWindows_x64::RegisterContextWindows_x64(
RegisterContextWindows_x64::~RegisterContextWindows_x64() {}
size_t RegisterContextWindows_x64::GetRegisterCount() {
return llvm::size(g_register_infos);
return llvm::array_lengthof(g_register_infos);
}
const RegisterInfo *
@ -259,7 +259,7 @@ RegisterContextWindows_x64::GetRegisterInfoAtIndex(size_t reg) {
}
size_t RegisterContextWindows_x64::GetRegisterSetCount() {
return llvm::size(g_register_sets);
return llvm::array_lengthof(g_register_sets);
}
const RegisterSet *RegisterContextWindows_x64::GetRegisterSet(size_t reg_set) {

View File

@ -118,7 +118,7 @@ RegisterInfo g_register_infos[] = {
nullptr,
},
};
static size_t k_num_register_infos = llvm::size(g_register_infos);
static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
// Array of lldb register numbers used to define the set of all General Purpose
// Registers
@ -130,7 +130,7 @@ uint32_t g_gpr_reg_indices[] = {eRegisterIndexEax, eRegisterIndexEbx,
RegisterSet g_register_sets[] = {
{"General Purpose Registers", "gpr",
llvm::size(g_gpr_reg_indices), g_gpr_reg_indices},
llvm::array_lengthof(g_gpr_reg_indices), g_gpr_reg_indices},
};
}
@ -142,7 +142,7 @@ RegisterContextWindows_x86::RegisterContextWindows_x86(
RegisterContextWindows_x86::~RegisterContextWindows_x86() {}
size_t RegisterContextWindows_x86::GetRegisterCount() {
return llvm::size(g_register_infos);
return llvm::array_lengthof(g_register_infos);
}
const RegisterInfo *
@ -153,7 +153,7 @@ RegisterContextWindows_x86::GetRegisterInfoAtIndex(size_t reg) {
}
size_t RegisterContextWindows_x86::GetRegisterSetCount() {
return llvm::size(g_register_sets);
return llvm::array_lengthof(g_register_sets);
}
const RegisterSet *RegisterContextWindows_x86::GetRegisterSet(size_t reg_set) {

View File

@ -336,7 +336,7 @@ static RegisterInfo g_reg_infos[] = {
DEF_Q(14),
DEF_Q(15)};
constexpr size_t k_num_reg_infos = llvm::size(g_reg_infos);
constexpr size_t k_num_reg_infos = llvm::array_lengthof(g_reg_infos);
// ARM general purpose registers.
const uint32_t g_gpr_regnums[] = {
@ -445,26 +445,26 @@ const uint32_t g_fpu_regnums[] = {
};
// Skip the last LLDB_INVALID_REGNUM in each count below by subtracting 1
constexpr size_t k_num_gpr_regs = llvm::size(g_gpr_regnums) - 1;
constexpr size_t k_num_fpu_regs = llvm::size(g_fpu_regnums) - 1;
constexpr size_t k_num_gpr_regs = llvm::array_lengthof(g_gpr_regnums) - 1;
constexpr size_t k_num_fpu_regs = llvm::array_lengthof(g_fpu_regnums) - 1;
static RegisterSet g_reg_sets[] = {
{"General Purpose Registers", "gpr", k_num_gpr_regs, g_gpr_regnums},
{"Floating Point Registers", "fpu", k_num_fpu_regs, g_fpu_regnums},
};
constexpr size_t k_num_reg_sets = llvm::size(g_reg_sets);
constexpr size_t k_num_reg_sets = llvm::array_lengthof(g_reg_sets);
RegisterContextMinidump_ARM::RegisterContextMinidump_ARM(
lldb_private::Thread &thread, const DataExtractor &data, bool apple)
: RegisterContext(thread, 0), m_apple(apple) {
lldb::offset_t offset = 0;
m_regs.context_flags = data.GetU32(&offset);
for (unsigned i = 0; i < llvm::size(m_regs.r); ++i)
for (unsigned i = 0; i < llvm::array_lengthof(m_regs.r); ++i)
m_regs.r[i] = data.GetU32(&offset);
m_regs.cpsr = data.GetU32(&offset);
m_regs.fpscr = data.GetU64(&offset);
for (unsigned i = 0; i < llvm::size(m_regs.d); ++i)
for (unsigned i = 0; i < llvm::array_lengthof(m_regs.d); ++i)
m_regs.d[i] = data.GetU64(&offset);
lldbassert(k_num_regs == k_num_reg_infos);
}

View File

@ -544,7 +544,7 @@ static RegisterInfo g_reg_infos[] = {
DEF_H(31),
};
constexpr size_t k_num_reg_infos = llvm::size(g_reg_infos);
constexpr size_t k_num_reg_infos = llvm::array_lengthof(g_reg_infos);
// ARM64 general purpose registers.
const uint32_t g_gpr_regnums[] = {
@ -751,15 +751,15 @@ const uint32_t g_fpu_regnums[] = {
};
// Skip the last LLDB_INVALID_REGNUM in each count below by subtracting 1
constexpr size_t k_num_gpr_regs = llvm::size(g_gpr_regnums) - 1;
constexpr size_t k_num_fpu_regs = llvm::size(g_fpu_regnums) - 1;
constexpr size_t k_num_gpr_regs = llvm::array_lengthof(g_gpr_regnums) - 1;
constexpr size_t k_num_fpu_regs = llvm::array_lengthof(g_fpu_regnums) - 1;
static RegisterSet g_reg_sets[] = {
{"General Purpose Registers", "gpr", k_num_gpr_regs, g_gpr_regnums},
{"Floating Point Registers", "fpu", k_num_fpu_regs, g_fpu_regnums},
};
constexpr size_t k_num_reg_sets = llvm::size(g_reg_sets);
constexpr size_t k_num_reg_sets = llvm::array_lengthof(g_reg_sets);
RegisterContextMinidump_ARM64::RegisterContextMinidump_ARM64(
lldb_private::Thread &thread, const DataExtractor &data)

View File

@ -254,12 +254,12 @@ struct ArchDefinition {
};
void ArchSpec::ListSupportedArchNames(StringList &list) {
for (uint32_t i = 0; i < llvm::size(g_core_definitions); ++i)
for (uint32_t i = 0; i < llvm::array_lengthof(g_core_definitions); ++i)
list.AppendString(g_core_definitions[i].name);
}
void ArchSpec::AutoComplete(CompletionRequest &request) {
for (uint32_t i = 0; i < llvm::size(g_core_definitions); ++i)
for (uint32_t i = 0; i < llvm::array_lengthof(g_core_definitions); ++i)
request.TryCompleteCurrentArg(g_core_definitions[i].name);
}
@ -340,7 +340,7 @@ static const ArchDefinitionEntry g_macho_arch_entries[] = {
// clang-format on
static const ArchDefinition g_macho_arch_def = {
eArchTypeMachO, llvm::size(g_macho_arch_entries),
eArchTypeMachO, llvm::array_lengthof(g_macho_arch_entries),
g_macho_arch_entries, "mach-o"};
//===----------------------------------------------------------------------===//
@ -409,7 +409,7 @@ static const ArchDefinitionEntry g_elf_arch_entries[] = {
static const ArchDefinition g_elf_arch_def = {
eArchTypeELF,
llvm::size(g_elf_arch_entries),
llvm::array_lengthof(g_elf_arch_entries),
g_elf_arch_entries,
"elf",
};
@ -435,7 +435,7 @@ static const ArchDefinitionEntry g_coff_arch_entries[] = {
static const ArchDefinition g_coff_arch_def = {
eArchTypeCOFF,
llvm::size(g_coff_arch_entries),
llvm::array_lengthof(g_coff_arch_entries),
g_coff_arch_entries,
"pe-coff",
};
@ -446,7 +446,7 @@ static const ArchDefinition *g_arch_definitions[] = {
&g_macho_arch_def, &g_elf_arch_def, &g_coff_arch_def};
static const size_t k_num_arch_definitions =
llvm::size(g_arch_definitions);
llvm::array_lengthof(g_arch_definitions);
//===----------------------------------------------------------------------===//
// Static helper functions.
@ -463,7 +463,7 @@ static const ArchDefinition *FindArchDefinition(ArchitectureType arch_type) {
// Get an architecture definition by name.
static const CoreDefinition *FindCoreDefinition(llvm::StringRef name) {
for (unsigned int i = 0; i < llvm::size(g_core_definitions); ++i) {
for (unsigned int i = 0; i < llvm::array_lengthof(g_core_definitions); ++i) {
if (name.equals_insensitive(g_core_definitions[i].name))
return &g_core_definitions[i];
}
@ -471,7 +471,7 @@ static const CoreDefinition *FindCoreDefinition(llvm::StringRef name) {
}
static inline const CoreDefinition *FindCoreDefinition(ArchSpec::Core core) {
if (core < llvm::size(g_core_definitions))
if (core < llvm::array_lengthof(g_core_definitions))
return &g_core_definitions[core];
return nullptr;
}

View File

@ -72,7 +72,7 @@ TEST(StatusTest, ErrorWin32) {
EXPECT_TRUE(success.Success());
WCHAR name[128]{};
ULONG nameLen = llvm::size(name);
ULONG nameLen = llvm::array_lengthof(name);
ULONG langs = 0;
GetUserPreferredUILanguages(MUI_LANGUAGE_NAME, &langs,
reinterpret_cast<PZZWSTR>(&name), &nameLen);

View File

@ -1430,6 +1430,12 @@ void shuffle(Iterator first, Iterator last, RNG &&g) {
}
}
/// Find the length of an array.
template <class T, std::size_t N>
constexpr inline size_t array_lengthof(T (&)[N]) {
return N;
}
/// Adapt std::less<T> for array_pod_sort.
template<typename T>
inline int array_pod_sort_comparator(const void *P1, const void *P2) {

View File

@ -63,16 +63,6 @@ struct in_place_index_t // NOLINT(readability-identifier-naming)
explicit in_place_index_t() = default;
};
template <class C>
constexpr auto size(const C& c) -> decltype(c.size()) { // NOLINT(readability-identifier-naming)
return c.size();
}
template <class T, std::size_t N>
constexpr std::size_t size(const T (&array)[N]) noexcept { // NOLINT(readability-identifier-naming)
return N;
}
//===----------------------------------------------------------------------===//
// Features from C++20
//===----------------------------------------------------------------------===//

View File

@ -924,7 +924,7 @@ public:
/// promotions or expansions.
bool isTypeLegal(EVT VT) const {
assert(!VT.isSimple() ||
(unsigned)VT.getSimpleVT().SimpleTy < size(RegClassForVT));
(unsigned)VT.getSimpleVT().SimpleTy < array_lengthof(RegClassForVT));
return VT.isSimple() && RegClassForVT[VT.getSimpleVT().SimpleTy] != nullptr;
}
@ -1078,7 +1078,7 @@ public:
if (VT.isExtended()) return Expand;
// If a target-specific SDNode requires legalization, require the target
// to provide custom legalization for it.
if (Op >= size(OpActions[0])) return Custom;
if (Op >= array_lengthof(OpActions[0])) return Custom;
return OpActions[(unsigned)VT.getSimpleVT().SimpleTy][Op];
}
@ -1379,8 +1379,8 @@ public:
/// expander for it.
LegalizeAction
getCondCodeAction(ISD::CondCode CC, MVT VT) const {
assert((unsigned)CC < size(CondCodeActions) &&
((unsigned)VT.SimpleTy >> 3) < size(CondCodeActions[0]) &&
assert((unsigned)CC < array_lengthof(CondCodeActions) &&
((unsigned)VT.SimpleTy >> 3) < array_lengthof(CondCodeActions[0]) &&
"Table isn't big enough!");
// See setCondCodeAction for how this is encoded.
uint32_t Shift = 4 * (VT.SimpleTy & 0x7);
@ -1488,7 +1488,7 @@ public:
/// Return the type of registers that this ValueType will eventually require.
MVT getRegisterType(MVT VT) const {
assert((unsigned)VT.SimpleTy < size(RegisterTypeForVT));
assert((unsigned)VT.SimpleTy < array_lengthof(RegisterTypeForVT));
return RegisterTypeForVT[VT.SimpleTy];
}
@ -1496,7 +1496,7 @@ public:
MVT getRegisterType(LLVMContext &Context, EVT VT) const {
if (VT.isSimple()) {
assert((unsigned)VT.getSimpleVT().SimpleTy <
size(RegisterTypeForVT));
array_lengthof(RegisterTypeForVT));
return RegisterTypeForVT[VT.getSimpleVT().SimpleTy];
}
if (VT.isVector()) {
@ -1529,7 +1529,7 @@ public:
Optional<MVT> RegisterVT = None) const {
if (VT.isSimple()) {
assert((unsigned)VT.getSimpleVT().SimpleTy <
size(NumRegistersForVT));
array_lengthof(NumRegistersForVT));
return NumRegistersForVT[VT.getSimpleVT().SimpleTy];
}
if (VT.isVector()) {
@ -1597,7 +1597,7 @@ public:
/// If true, the target has custom DAG combine transformations that it can
/// perform for the specified node.
bool hasTargetDAGCombine(ISD::NodeType NT) const {
assert(unsigned(NT >> 3) < size(TargetDAGCombineArray));
assert(unsigned(NT >> 3) < array_lengthof(TargetDAGCombineArray));
return TargetDAGCombineArray[NT >> 3] & (1 << (NT&7));
}
@ -2212,7 +2212,7 @@ protected:
/// specified value type. This indicates the selector can handle values of
/// that class natively.
void addRegisterClass(MVT VT, const TargetRegisterClass *RC) {
assert((unsigned)VT.SimpleTy < size(RegClassForVT));
assert((unsigned)VT.SimpleTy < array_lengthof(RegClassForVT));
RegClassForVT[VT.SimpleTy] = RC;
}
@ -2229,7 +2229,7 @@ protected:
/// type and indicate what to do about it. Note that VT may refer to either
/// the type of a result or that of an operand of Op.
void setOperationAction(unsigned Op, MVT VT, LegalizeAction Action) {
assert(Op < size(OpActions[0]) && "Table isn't big enough!");
assert(Op < array_lengthof(OpActions[0]) && "Table isn't big enough!");
OpActions[(unsigned)VT.SimpleTy][Op] = Action;
}
@ -2294,7 +2294,7 @@ protected:
/// target and indicate what to do about it.
void setCondCodeAction(ISD::CondCode CC, MVT VT,
LegalizeAction Action) {
assert(VT.isValid() && (unsigned)CC < size(CondCodeActions) &&
assert(VT.isValid() && (unsigned)CC < array_lengthof(CondCodeActions) &&
"Table isn't big enough!");
assert((unsigned)Action < 0x10 && "too many bits for bitfield array");
/// The lower 3 bits of the SimpleTy index into Nth 4bit set from the 32-bit
@ -2324,7 +2324,7 @@ protected:
/// they want to provide a custom DAG combiner for by implementing the
/// PerformDAGCombine virtual method.
void setTargetDAGCombine(ISD::NodeType NT) {
assert(unsigned(NT >> 3) < size(TargetDAGCombineArray));
assert(unsigned(NT >> 3) < array_lengthof(TargetDAGCombineArray));
TargetDAGCombineArray[NT >> 3] |= 1 << (NT&7);
}

View File

@ -104,7 +104,7 @@ public:
}
constexpr FeatureBitset &operator^=(const FeatureBitset &RHS) {
for (unsigned I = 0, E = llvm::size(Bits); I != E; ++I) {
for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) {
Bits[I] ^= RHS.Bits[I];
}
return *this;
@ -116,7 +116,7 @@ public:
}
constexpr FeatureBitset &operator&=(const FeatureBitset &RHS) {
for (unsigned I = 0, E = llvm::size(Bits); I != E; ++I) {
for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) {
Bits[I] &= RHS.Bits[I];
}
return *this;
@ -128,7 +128,7 @@ public:
}
constexpr FeatureBitset &operator|=(const FeatureBitset &RHS) {
for (unsigned I = 0, E = llvm::size(Bits); I != E; ++I) {
for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) {
Bits[I] |= RHS.Bits[I];
}
return *this;

View File

@ -4329,7 +4329,7 @@ LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle(
// The input vector this mask element indexes into.
unsigned Input = (unsigned)Idx / NewElts;
if (Input >= size(Inputs)) {
if (Input >= array_lengthof(Inputs)) {
// The mask element does not index into any input vector.
Ops.push_back(-1);
continue;
@ -4340,7 +4340,7 @@ LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle(
// Find or create a shuffle vector operand to hold this input.
unsigned OpNo;
for (OpNo = 0; OpNo < size(InputUsed); ++OpNo) {
for (OpNo = 0; OpNo < array_lengthof(InputUsed); ++OpNo) {
if (InputUsed[OpNo] == Input) {
// This input vector is already an operand.
break;
@ -4351,7 +4351,7 @@ LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle(
}
}
if (OpNo >= size(InputUsed)) {
if (OpNo >= array_lengthof(InputUsed)) {
// More than two input vectors used! Give up on trying to create a
// shuffle vector. Insert all elements into a BUILD_VECTOR instead.
UseBuildVector = true;
@ -4374,7 +4374,7 @@ LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle(
// The input vector this mask element indexes into.
unsigned Input = (unsigned)Idx / NewElts;
if (Input >= size(Inputs)) {
if (Input >= array_lengthof(Inputs)) {
// The mask element is "undef" or indexes off the end of the input.
SVOps.push_back(MIRBuilder.buildUndef(EltTy).getReg(0));
continue;

View File

@ -2153,7 +2153,7 @@ void DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N,
// The input vector this mask element indexes into.
unsigned Input = (unsigned)Idx / NewElts;
if (Input >= size(Inputs)) {
if (Input >= array_lengthof(Inputs)) {
// The mask element does not index into any input vector.
Ops.push_back(-1);
continue;
@ -2164,7 +2164,7 @@ void DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N,
// Find or create a shuffle vector operand to hold this input.
unsigned OpNo;
for (OpNo = 0; OpNo < size(InputUsed); ++OpNo) {
for (OpNo = 0; OpNo < array_lengthof(InputUsed); ++OpNo) {
if (InputUsed[OpNo] == Input) {
// This input vector is already an operand.
break;
@ -2175,7 +2175,7 @@ void DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N,
}
}
if (OpNo >= size(InputUsed)) {
if (OpNo >= array_lengthof(InputUsed)) {
// More than two input vectors used! Give up on trying to create a
// shuffle vector. Insert all elements into a BUILD_VECTOR instead.
useBuildVector = true;
@ -2198,7 +2198,7 @@ void DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N,
// The input vector this mask element indexes into.
unsigned Input = (unsigned)Idx / NewElts;
if (Input >= size(Inputs)) {
if (Input >= array_lengthof(Inputs)) {
// The mask element is "undef" or indexes off the end of the input.
SVOps.push_back(DAG.getUNDEF(EltVT));
continue;

View File

@ -966,7 +966,7 @@ TargetLoweringBase::getTypeConversion(LLVMContext &Context, EVT VT) const {
// If this is a simple type, use the ComputeRegisterProp mechanism.
if (VT.isSimple()) {
MVT SVT = VT.getSimpleVT();
assert((unsigned)SVT.SimpleTy < size(TransformToType));
assert((unsigned)SVT.SimpleTy < array_lengthof(TransformToType));
MVT NVT = TransformToType[SVT.SimpleTy];
LegalizeTypeAction LA = ValueTypeActions.getTypeAction(SVT);

View File

@ -394,7 +394,7 @@ void writeIndexTable(
const MapVector<uint64_t, UnitIndexEntry> &IndexEntries,
uint32_t DWARFUnitIndex::Entry::SectionContribution::*Field) {
for (const auto &E : IndexEntries)
for (size_t I = 0; I != size(E.second.Contributions); ++I)
for (size_t I = 0; I != array_lengthof(E.second.Contributions); ++I)
if (ContributionOffsets[I])
Out.emitIntValue(E.second.Contributions[I].*Field, 4);
}

View File

@ -326,14 +326,14 @@ void GenericDINode::recalculateHash() {
} \
} while (false)
#define DEFINE_GETIMPL_STORE(CLASS, ARGS, OPS) \
return storeImpl(new (size(OPS)) \
return storeImpl(new (array_lengthof(OPS)) \
CLASS(Context, Storage, UNWRAP_ARGS(ARGS), OPS), \
Storage, Context.pImpl->CLASS##s)
#define DEFINE_GETIMPL_STORE_NO_OPS(CLASS, ARGS) \
return storeImpl(new (0u) CLASS(Context, Storage, UNWRAP_ARGS(ARGS)), \
Storage, Context.pImpl->CLASS##s)
#define DEFINE_GETIMPL_STORE_NO_CONSTRUCTOR_ARGS(CLASS, OPS) \
return storeImpl(new (size(OPS)) CLASS(Context, Storage, OPS), \
return storeImpl(new (array_lengthof(OPS)) CLASS(Context, Storage, OPS), \
Storage, Context.pImpl->CLASS##s)
#define DEFINE_GETIMPL_STORE_N(CLASS, ARGS, OPS, NUM_OPS) \
return storeImpl(new (NUM_OPS) \
@ -772,7 +772,7 @@ DICompileUnit *DICompileUnit::getImpl(
Macros,
SysRoot,
SDK};
return storeImpl(new (size(Ops)) DICompileUnit(
return storeImpl(new (array_lengthof(Ops)) DICompileUnit(
Context, Storage, SourceLanguage, IsOptimized,
RuntimeVersion, EmissionKind, DWOId, SplitDebugInlining,
DebugInfoForProfiling, NameTableKind, RangesBaseAddress,

View File

@ -97,7 +97,7 @@ const MCFixupKindInfo &MCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
{"FK_SecRel_8", 0, 64, 0},
};
assert((size_t)Kind <= size(Builtins) && "Unknown fixup kind");
assert((size_t)Kind <= array_lengthof(Builtins) && "Unknown fixup kind");
return Builtins[Kind];
}

View File

@ -306,7 +306,7 @@ MCDwarfLineTableHeader::Emit(MCStreamer *MCOS, MCDwarfLineTableParams Params,
0, // length of DW_LNS_set_epilogue_begin
1 // DW_LNS_set_isa
};
assert(size(StandardOpcodeLengths) >=
assert(array_lengthof(StandardOpcodeLengths) >=
(Params.DWARF2LineOpcodeBase - 1U));
return Emit(
MCOS, Params,

View File

@ -2288,7 +2288,7 @@ void MachOObjectFile::getRelocationTypeName(
"ARM64_RELOC_ADDEND"
};
if (RType >= size(Table))
if (RType >= array_lengthof(Table))
res = "Unknown";
else
res = Table[RType];

View File

@ -211,7 +211,7 @@ Error ARMAttributeParser::ABI_align_needed(AttrType tag) {
uint64_t value = de.getULEB128(cursor);
std::string description;
if (value < size(strings))
if (value < array_lengthof(strings))
description = strings[value];
else if (value <= 12)
description = "8-byte alignment, " + utostr(1ULL << value) +
@ -230,7 +230,7 @@ Error ARMAttributeParser::ABI_align_preserved(AttrType tag) {
uint64_t value = de.getULEB128(cursor);
std::string description;
if (value < size(strings))
if (value < array_lengthof(strings))
description = std::string(strings[value]);
else if (value <= 12)
description = std::string("8-byte stack alignment, ") +
@ -382,7 +382,7 @@ Error ARMAttributeParser::nodefaults(AttrType tag) {
Error ARMAttributeParser::handler(uint64_t tag, bool &handled) {
handled = false;
for (unsigned AHI = 0, AHE = size(displayRoutines); AHI != AHE;
for (unsigned AHI = 0, AHE = array_lengthof(displayRoutines); AHI != AHE;
++AHI) {
if (uint64_t(displayRoutines[AHI].attribute) == tag) {
if (Error e =

View File

@ -348,7 +348,7 @@ static void uninstallExceptionOrSignalHandlers() {
static const int Signals[] =
{ SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGSEGV, SIGTRAP };
static const unsigned NumSignals = size(Signals);
static const unsigned NumSignals = array_lengthof(Signals);
static struct sigaction PrevActions[NumSignals];
static void CrashRecoverySignalHandler(int Signal) {

View File

@ -145,7 +145,7 @@ void llvm::write_hex(raw_ostream &S, uint64_t N, HexPrintStyle Style,
std::max(static_cast<unsigned>(W), std::max(1u, Nibbles) + PrefixChars);
char NumberBuffer[kMaxWidth];
::memset(NumberBuffer, '0', llvm::size(NumberBuffer));
::memset(NumberBuffer, '0', llvm::array_lengthof(NumberBuffer));
if (Prefix)
NumberBuffer[1] = 'x';
char *EndPtr = NumberBuffer + NumChars;

View File

@ -53,7 +53,7 @@ Error RISCVAttributeParser::stackAlign(unsigned tag) {
Error RISCVAttributeParser::handler(uint64_t tag, bool &handled) {
handled = false;
for (unsigned AHI = 0, AHE = size(displayRoutines); AHI != AHE;
for (unsigned AHI = 0, AHE = array_lengthof(displayRoutines); AHI != AHE;
++AHI) {
if (uint64_t(displayRoutines[AHI].attribute) == tag) {
if (Error e = (this->*displayRoutines[AHI].routine)(tag))

View File

@ -898,13 +898,13 @@ std::string Triple::normalize(StringRef Str) {
// If they are not there already, permute the components into their canonical
// positions by seeing if they parse as a valid architecture, and if so moving
// the component to the architecture position etc.
for (unsigned Pos = 0; Pos != size(Found); ++Pos) {
for (unsigned Pos = 0; Pos != array_lengthof(Found); ++Pos) {
if (Found[Pos])
continue; // Already in the canonical position.
for (unsigned Idx = 0; Idx != Components.size(); ++Idx) {
// Do not reparse any components that already matched.
if (Idx < size(Found) && Found[Idx])
if (Idx < array_lengthof(Found) && Found[Idx])
continue;
// Does this component parse as valid for the target position?
@ -952,7 +952,7 @@ std::string Triple::normalize(StringRef Str) {
// components to the right.
for (unsigned i = Pos; !CurrentComponent.empty(); ++i) {
// Skip over any fixed components.
while (i < size(Found) && Found[i])
while (i < array_lengthof(Found) && Found[i])
++i;
// Place the component at the new position, getting the component
// that was at this position - it will be moved right.
@ -973,7 +973,7 @@ std::string Triple::normalize(StringRef Str) {
if (CurrentComponent.empty())
break;
// Advance to the next component, skipping any fixed components.
while (++i < size(Found) && Found[i])
while (++i < array_lengthof(Found) && Found[i])
;
}
// The last component was pushed off the end - append it.
@ -981,7 +981,7 @@ std::string Triple::normalize(StringRef Str) {
Components.push_back(CurrentComponent);
// Advance Idx to the component's new position.
while (++Idx < size(Found) && Found[Idx])
while (++Idx < array_lengthof(Found) && Found[Idx])
;
} while (Idx < Pos); // Add more until the final position is reached.
}

View File

@ -239,8 +239,8 @@ static const int InfoSigs[] = {
};
static const size_t NumSigs =
size(IntSigs) + size(KillSigs) +
size(InfoSigs) + 1 /* SIGPIPE */;
array_lengthof(IntSigs) + array_lengthof(KillSigs) +
array_lengthof(InfoSigs) + 1 /* SIGPIPE */;
static std::atomic<unsigned> NumRegisteredSignals = ATOMIC_VAR_INIT(0);
@ -298,7 +298,7 @@ static void RegisterHandlers() { // Not signal-safe.
enum class SignalKind { IsKill, IsInfo };
auto registerHandler = [&](int Signal, SignalKind Kind) {
unsigned Index = NumRegisteredSignals.load();
assert(Index < size(RegisteredSignalInfo) &&
assert(Index < array_lengthof(RegisteredSignalInfo) &&
"Out of space for signal handlers!");
struct sigaction NewHandler;
@ -562,13 +562,13 @@ void llvm::sys::PrintStackTrace(raw_ostream &OS, int Depth) {
#if defined(HAVE_BACKTRACE)
// Use backtrace() to output a backtrace on Linux systems with glibc.
if (!depth)
depth = backtrace(StackTrace, static_cast<int>(size(StackTrace)));
depth = backtrace(StackTrace, static_cast<int>(array_lengthof(StackTrace)));
#endif
#if defined(HAVE__UNWIND_BACKTRACE)
// Try _Unwind_Backtrace() if backtrace() failed.
if (!depth)
depth = unwindBacktrace(StackTrace,
static_cast<int>(size(StackTrace)));
static_cast<int>(array_lengthof(StackTrace)));
#endif
if (!depth)
return;

View File

@ -687,7 +687,7 @@ static bool isReservedName(StringRef path) {
return true;
// Then compare against the list of ancient reserved names.
for (size_t i = 0; i < size(sReservedNames); ++i) {
for (size_t i = 0; i < array_lengthof(sReservedNames); ++i) {
if (path.equals_insensitive(sReservedNames[i]))
return true;
}

View File

@ -242,7 +242,7 @@ static bool printStackTraceWithLLVMSymbolizer(llvm::raw_ostream &OS,
if (StackFrame.AddrFrame.Offset == 0)
break;
StackTrace[Depth++] = (void *)(uintptr_t)StackFrame.AddrPC.Offset;
if (Depth >= size(StackTrace))
if (Depth >= array_lengthof(StackTrace))
break;
}

View File

@ -54,7 +54,7 @@ public:
}
constexpr FeatureBitset &operator&=(const FeatureBitset &RHS) {
for (unsigned I = 0, E = size(Bits); I != E; ++I) {
for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) {
// GCC <6.2 crashes if this is written in a single statement.
uint32_t NewBits = Bits[I] & RHS.Bits[I];
Bits[I] = NewBits;
@ -63,7 +63,7 @@ public:
}
constexpr FeatureBitset &operator|=(const FeatureBitset &RHS) {
for (unsigned I = 0, E = size(Bits); I != E; ++I) {
for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) {
// GCC <6.2 crashes if this is written in a single statement.
uint32_t NewBits = Bits[I] | RHS.Bits[I];
Bits[I] = NewBits;
@ -74,7 +74,7 @@ public:
// gcc 5.3 miscompiles this if we try to write this using operator&=.
constexpr FeatureBitset operator&(const FeatureBitset &RHS) const {
FeatureBitset Result;
for (unsigned I = 0, E = size(Bits); I != E; ++I)
for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I)
Result.Bits[I] = Bits[I] & RHS.Bits[I];
return Result;
}
@ -82,20 +82,20 @@ public:
// gcc 5.3 miscompiles this if we try to write this using operator&=.
constexpr FeatureBitset operator|(const FeatureBitset &RHS) const {
FeatureBitset Result;
for (unsigned I = 0, E = size(Bits); I != E; ++I)
for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I)
Result.Bits[I] = Bits[I] | RHS.Bits[I];
return Result;
}
constexpr FeatureBitset operator~() const {
FeatureBitset Result;
for (unsigned I = 0, E = size(Bits); I != E; ++I)
for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I)
Result.Bits[I] = ~Bits[I];
return Result;
}
constexpr bool operator!=(const FeatureBitset &RHS) const {
for (unsigned I = 0, E = size(Bits); I != E; ++I)
for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I)
if (Bits[I] != RHS.Bits[I])
return true;
return false;
@ -690,7 +690,7 @@ unsigned llvm::X86::getFeaturePriority(ProcessorFeatures Feat) {
#include "llvm/Support/X86TargetParser.def"
std::numeric_limits<unsigned>::max() // Need to consume last comma.
};
std::array<unsigned, size(Priorities) - 1> HelperList;
std::array<unsigned, array_lengthof(Priorities) - 1> HelperList;
std::iota(HelperList.begin(), HelperList.end(), 0);
assert(std::is_permutation(HelperList.begin(), HelperList.end(),
std::begin(Priorities),

View File

@ -480,12 +480,12 @@ static raw_ostream &write_padding(raw_ostream &OS, unsigned NumChars) {
C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C};
// Usually the indentation is small, handle it with a fastpath.
if (NumChars < size(Chars))
if (NumChars < array_lengthof(Chars))
return OS.write(Chars, NumChars);
while (NumChars) {
unsigned NumToWrite = std::min(NumChars,
(unsigned)size(Chars)-1);
(unsigned)array_lengthof(Chars)-1);
OS.write(Chars, NumToWrite);
NumChars -= NumToWrite;
}

View File

@ -5640,7 +5640,7 @@ void AArch64TargetLowering::saveVarArgRegisters(CCState &CCInfo,
static const MCPhysReg GPRArgRegs[] = { AArch64::X0, AArch64::X1, AArch64::X2,
AArch64::X3, AArch64::X4, AArch64::X5,
AArch64::X6, AArch64::X7 };
static const unsigned NumGPRArgRegs = size(GPRArgRegs);
static const unsigned NumGPRArgRegs = array_lengthof(GPRArgRegs);
unsigned FirstVariadicGPR = CCInfo.getFirstUnallocated(GPRArgRegs);
unsigned GPRSaveSize = 8 * (NumGPRArgRegs - FirstVariadicGPR);
@ -5676,7 +5676,7 @@ void AArch64TargetLowering::saveVarArgRegisters(CCState &CCInfo,
static const MCPhysReg FPRArgRegs[] = {
AArch64::Q0, AArch64::Q1, AArch64::Q2, AArch64::Q3,
AArch64::Q4, AArch64::Q5, AArch64::Q6, AArch64::Q7};
static const unsigned NumFPRArgRegs = size(FPRArgRegs);
static const unsigned NumFPRArgRegs = array_lengthof(FPRArgRegs);
unsigned FirstVariadicFPR = CCInfo.getFirstUnallocated(FPRArgRegs);
unsigned FPRSaveSize = 16 * (NumFPRArgRegs - FirstVariadicFPR);

View File

@ -706,7 +706,7 @@ static const LdStNInstrDesc LdStNInstInfo[] = {
static const LdStNInstrDesc *getLdStNInstrDesc(unsigned Opcode) {
unsigned Idx;
for (Idx = 0; Idx != size(LdStNInstInfo); ++Idx)
for (Idx = 0; Idx != array_lengthof(LdStNInstInfo); ++Idx)
if (LdStNInstInfo[Idx].Opcode == Opcode)
return &LdStNInstInfo[Idx];

View File

@ -347,7 +347,7 @@ const UnmangledFuncInfo UnmangledFuncInfo::Table[] = {
};
const unsigned UnmangledFuncInfo::TableSize =
size(UnmangledFuncInfo::Table);
array_lengthof(UnmangledFuncInfo::Table);
static AMDGPULibFunc::Param getRetType(AMDGPULibFunc::EFuncId id,
const AMDGPULibFunc::Param (&Leads)[2]) {
@ -555,7 +555,7 @@ static AMDGPULibFunc::ENamePrefix parseNamePrefix(StringRef& mangledName) {
}
StringMap<int> ManglingRule::buildManglingRulesMap() {
StringMap<int> Map(size(manglingRules));
StringMap<int> Map(array_lengthof(manglingRules));
int Id = 0;
for (auto Rule : manglingRules)
Map.insert({Rule.Name, Id++});

View File

@ -29,7 +29,7 @@ unsigned R600RegisterInfo::getSubRegFromChannel(unsigned Channel) {
R600::sub12, R600::sub13, R600::sub14, R600::sub15
};
assert(Channel < size(SubRegFromChannelTable));
assert(Channel < array_lengthof(SubRegFromChannelTable));
return SubRegFromChannelTable[Channel];
}

View File

@ -560,18 +560,18 @@ SDValue ARCTargetLowering::LowerCallArguments(
ARC::R4, ARC::R5, ARC::R6, ARC::R7};
auto *AFI = MF.getInfo<ARCFunctionInfo>();
unsigned FirstVAReg = CCInfo.getFirstUnallocated(ArgRegs);
if (FirstVAReg < size(ArgRegs)) {
if (FirstVAReg < array_lengthof(ArgRegs)) {
int Offset = 0;
// Save remaining registers, storing higher register numbers at a higher
// address
// There are (size(ArgRegs) - FirstVAReg) registers which
// There are (array_lengthof(ArgRegs) - FirstVAReg) registers which
// need to be saved.
int VarFI =
MFI.CreateFixedObject((size(ArgRegs) - FirstVAReg) * 4,
MFI.CreateFixedObject((array_lengthof(ArgRegs) - FirstVAReg) * 4,
CCInfo.getNextStackOffset(), true);
AFI->setVarArgsFrameIndex(VarFI);
SDValue FIN = DAG.getFrameIndex(VarFI, MVT::i32);
for (unsigned i = FirstVAReg; i < size(ArgRegs); i++) {
for (unsigned i = FirstVAReg; i < array_lengthof(ArgRegs); i++) {
// Move argument from phys reg -> virt reg
unsigned VReg = RegInfo.createVirtualRegister(&ARC::GPR32RegClass);
RegInfo.addLiveIn(ArgRegs[i], VReg);

View File

@ -113,7 +113,7 @@ static const ARM_MLxEntry ARM_MLxTable[] = {
ARMBaseInstrInfo::ARMBaseInstrInfo(const ARMSubtarget& STI)
: ARMGenInstrInfo(ARM::ADJCALLSTACKDOWN, ARM::ADJCALLSTACKUP),
Subtarget(STI) {
for (unsigned i = 0, e = size(ARM_MLxTable); i != e; ++i) {
for (unsigned i = 0, e = array_lengthof(ARM_MLxTable); i != e; ++i) {
if (!MLxEntryMap.insert(std::make_pair(ARM_MLxTable[i].MLxOpc, i)).second)
llvm_unreachable("Duplicated entries?");
MLxHazardOpcodes.insert(ARM_MLxTable[i].AddSubOpc);
@ -2466,7 +2466,7 @@ static const AddSubFlagsOpcodePair AddSubFlagsOpcodeMap[] = {
};
unsigned llvm::convertAddSubFlagsOpcode(unsigned OldOpc) {
for (unsigned i = 0, e = size(AddSubFlagsOpcodeMap); i != e; ++i)
for (unsigned i = 0, e = array_lengthof(AddSubFlagsOpcodeMap); i != e; ++i)
if (OldOpc == AddSubFlagsOpcodeMap[i].PseudoOpc)
return AddSubFlagsOpcodeMap[i].MachineOpc;
return 0;

View File

@ -2367,7 +2367,7 @@ bool ARMFrameLowering::assignCalleeSavedSpillSlots(
const TargetFrameLowering::SpillSlot *
ARMFrameLowering::getCalleeSavedSpillSlots(unsigned &NumEntries) const {
static const SpillSlot FixedSpillOffsets[] = {{ARM::FPCXTNS, -4}};
NumEntries = size(FixedSpillOffsets);
NumEntries = array_lengthof(FixedSpillOffsets);
return FixedSpillOffsets;
}

View File

@ -4465,7 +4465,7 @@ SDValue ARMTargetLowering::LowerFormalArguments(
int lastInsIndex = -1;
if (isVarArg && MFI.hasVAStart()) {
unsigned RegIdx = CCInfo.getFirstUnallocated(GPRArgRegs);
if (RegIdx != size(GPRArgRegs))
if (RegIdx != array_lengthof(GPRArgRegs))
ArgRegBegin = std::min(ArgRegBegin, (unsigned)GPRArgRegs[RegIdx]);
}

View File

@ -244,7 +244,7 @@ INITIALIZE_PASS(Thumb2SizeReduce, DEBUG_TYPE, THUMB2_SIZE_REDUCE_NAME, false,
Thumb2SizeReduce::Thumb2SizeReduce(std::function<bool(const Function &)> Ftor)
: MachineFunctionPass(ID), PredicateFtor(std::move(Ftor)) {
OptimizeSize = MinimizeSize = false;
for (unsigned i = 0, e = size(ReduceTable); i != e; ++i) {
for (unsigned i = 0, e = array_lengthof(ReduceTable); i != e; ++i) {
unsigned FromOpc = ReduceTable[i].WideOpc;
if (!ReduceOpcodeMap.insert(std::make_pair(FromOpc, i)).second)
llvm_unreachable("Duplicated entries?");

View File

@ -1033,7 +1033,7 @@ static const MCPhysReg RegList16[] = {
AVR::R16R15, AVR::R15R14, AVR::R14R13, AVR::R13R12, AVR::R12R11,
AVR::R11R10, AVR::R10R9, AVR::R9R8};
static_assert(size(RegList8) == size(RegList16),
static_assert(array_lengthof(RegList8) == array_lengthof(RegList16),
"8-bit and 16-bit register arrays must be of equal length");
/// Analyze incoming and outgoing function arguments. We need custom C++ code
@ -1074,7 +1074,7 @@ analyzeArguments(TargetLowering::CallLoweringInfo *CLI, const Function *F,
unsigned RegIdx = RegLastIdx + TotalBytes;
RegLastIdx = RegIdx;
// If there are not enough registers, use the stack
if (RegIdx >= size(RegList8)) {
if (RegIdx >= array_lengthof(RegList8)) {
UseStack = true;
}
for (; i != j; ++i) {

View File

@ -675,7 +675,7 @@ static DecodeStatus DecodeCtrRegsRegisterClass(MCInst &Inst, unsigned RegNo,
/* 28 */ 0, 0, UTIMERLO, UTIMERHI
};
if (RegNo >= size(CtrlRegDecoderTable))
if (RegNo >= array_lengthof(CtrlRegDecoderTable))
return MCDisassembler::Fail;
static_assert(NoRegister == 0, "Expecting NoRegister to be 0");
@ -703,7 +703,7 @@ static DecodeStatus DecodeCtrRegs64RegisterClass(MCInst &Inst, unsigned RegNo,
/* 28 */ 0, 0, UTIMER, 0
};
if (RegNo >= size(CtrlReg64DecoderTable))
if (RegNo >= array_lengthof(CtrlReg64DecoderTable))
return MCDisassembler::Fail;
static_assert(NoRegister == 0, "Expecting NoRegister to be 0");
@ -855,7 +855,7 @@ static DecodeStatus DecodeGuestRegsRegisterClass(MCInst &Inst, unsigned RegNo,
/* 28 */ GPMUCNT2, GPMUCNT3, G30, G31
};
if (RegNo >= size(GuestRegDecoderTable))
if (RegNo >= array_lengthof(GuestRegDecoderTable))
return MCDisassembler::Fail;
if (GuestRegDecoderTable[RegNo] == Hexagon::NoRegister)
return MCDisassembler::Fail;
@ -881,7 +881,7 @@ static DecodeStatus DecodeGuestRegs64RegisterClass(MCInst &Inst, unsigned RegNo,
/* 28 */ G29_28, 0, G31_30, 0
};
if (RegNo >= size(GuestReg64DecoderTable))
if (RegNo >= array_lengthof(GuestReg64DecoderTable))
return MCDisassembler::Fail;
if (GuestReg64DecoderTable[RegNo] == Hexagon::NoRegister)
return MCDisassembler::Fail;

View File

@ -97,7 +97,7 @@ public:
{ Hexagon::R25, -36 }, { Hexagon::R24, -40 }, { Hexagon::D12, -40 },
{ Hexagon::R27, -44 }, { Hexagon::R26, -48 }, { Hexagon::D13, -48 }
};
NumEntries = size(Offsets);
NumEntries = array_lengthof(Offsets);
return Offsets;
}

Some files were not shown because too many files have changed in this diff Show More