Skip to content

Commit 9727ea1

Browse files
committed
[clang-tidy] avoid diagnosing std::array initializations for modernize-use-designated-initializers when IgnoreSingleElementAggregates is false
1 parent bf1294a commit 9727ea1

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

clang-tools-extra/clang-tidy/modernize/UseDesignatedInitializersCheck.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,17 +120,16 @@ void UseDesignatedInitializersCheck::registerMatchers(MatchFinder *Finder) {
120120
const auto HasBaseWithFields =
121121
hasAnyBase(hasType(cxxRecordDecl(has(fieldDecl()))));
122122

123-
// see #133715
124-
const auto IsSTLArray =
125-
hasType(qualType(hasDeclaration(recordDecl(hasName("::std::array")))));
126-
127123
Finder->addMatcher(
128124
initListExpr(
129125
hasType(cxxRecordDecl(RestrictToPODTypes ? isPOD() : isAggregate(),
130-
unless(HasBaseWithFields))
126+
unless(anyOf(HasBaseWithFields,
127+
IgnoreSingleElementAggregates
128+
? hasName("::std::array")
129+
: anything())))
131130
.bind("type")),
132131
IgnoreSingleElementAggregates ? hasMoreThanOneElement() : anything(),
133-
unless(anyOf(isFullyDesignated(), IsSTLArray)))
132+
unless(isFullyDesignated()))
134133
.bind("init"),
135134
this);
136135
}

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ Changes in existing checks
173173

174174
- Improved :doc:`modernize-use-designated-initializers
175175
<clang-tidy/checks/modernize/use-designated-initializers>` check by avoiding
176-
diagnosing designated initializers for ``std::array`` initializations.
176+
diagnosing designated initializers for ``std::array`` initializations when
177+
`IgnoreSingleElementAggregates` is false.
177178

178179
- Improved :doc:`modernize-use-ranges
179180
<clang-tidy/checks/modernize/use-ranges>` check by updating suppress

0 commit comments

Comments
 (0)