@@ -153,11 +153,13 @@ static bool diagGroupBeforeByName(const Record *LHS, const Record *RHS) {
153153 RHS->getValueAsString (" GroupName" );
154154}
155155
156+ using DiagsInGroupTy = std::map<std::string, GroupInfo, std::less<>>;
157+
156158// / Invert the 1-[0/1] mapping of diags to group into a one to many
157159// / mapping of groups to diags in the group.
158160static void groupDiagnostics (ArrayRef<const Record *> Diags,
159161 ArrayRef<const Record *> DiagGroups,
160- std::map<std::string, GroupInfo> &DiagsInGroup) {
162+ DiagsInGroupTy &DiagsInGroup) {
161163
162164 for (unsigned i = 0 , e = Diags.size (); i != e; ++i) {
163165 const Record *R = Diags[i];
@@ -256,14 +258,14 @@ class InferPedantic {
256258 DiagGroupParentMap &DiagGroupParents;
257259 ArrayRef<const Record *> Diags;
258260 const std::vector<const Record *> DiagGroups;
259- std::map<std::string, GroupInfo> &DiagsInGroup;
261+ DiagsInGroupTy &DiagsInGroup;
260262 DenseSet<const Record *> DiagsSet;
261263 GMap GroupCount;
262264public:
263265 InferPedantic (DiagGroupParentMap &DiagGroupParents,
264266 ArrayRef<const Record *> Diags,
265267 ArrayRef<const Record *> DiagGroups,
266- std::map<std::string, GroupInfo> &DiagsInGroup)
268+ DiagsInGroupTy &DiagsInGroup)
267269 : DiagGroupParents(DiagGroupParents), Diags(Diags),
268270 DiagGroups (DiagGroups), DiagsInGroup(DiagsInGroup) {}
269271
@@ -1426,7 +1428,7 @@ void clang::EmitClangDiagsDefs(const RecordKeeper &Records, raw_ostream &OS,
14261428 ArrayRef<const Record *> DiagGroups =
14271429 Records.getAllDerivedDefinitions (" DiagGroup" );
14281430
1429- std::map<std::string, GroupInfo> DiagsInGroup;
1431+ DiagsInGroupTy DiagsInGroup;
14301432 groupDiagnostics (Diags, DiagGroups, DiagsInGroup);
14311433
14321434 DiagCategoryIDMap CategoryIDs (Records);
@@ -1549,7 +1551,7 @@ static std::string getDiagCategoryEnum(StringRef name) {
15491551// / }
15501552// / \endcode
15511553// /
1552- static void emitDiagSubGroups (std::map<std::string, GroupInfo> &DiagsInGroup,
1554+ static void emitDiagSubGroups (DiagsInGroupTy &DiagsInGroup,
15531555 RecordVec &GroupsInPedantic, raw_ostream &OS) {
15541556 OS << " static const int16_t DiagSubGroups[] = {\n "
15551557 << " /* Empty */ -1,\n " ;
@@ -1601,7 +1603,7 @@ static void emitDiagSubGroups(std::map<std::string, GroupInfo> &DiagsInGroup,
16011603// / };
16021604// / \endcode
16031605// /
1604- static void emitDiagArrays (std::map<std::string, GroupInfo> &DiagsInGroup,
1606+ static void emitDiagArrays (DiagsInGroupTy &DiagsInGroup,
16051607 RecordVec &DiagsInPedantic, raw_ostream &OS) {
16061608 OS << " static const int16_t DiagArrays[] = {\n "
16071609 << " /* Empty */ -1,\n " ;
@@ -1653,7 +1655,7 @@ static void emitDiagGroupNames(const StringToOffsetTable &GroupNames,
16531655// / static const char DiagGroupNames[];
16541656// / #endif
16551657// / \endcode
1656- static void emitAllDiagArrays (std::map<std::string, GroupInfo> &DiagsInGroup,
1658+ static void emitAllDiagArrays (DiagsInGroupTy &DiagsInGroup,
16571659 RecordVec &DiagsInPedantic,
16581660 RecordVec &GroupsInPedantic,
16591661 const StringToOffsetTable &GroupNames,
@@ -1680,7 +1682,7 @@ static void emitAllDiagArrays(std::map<std::string, GroupInfo> &DiagsInGroup,
16801682// / {/* deprecated */ 1981,/* DiagArray1 */ 348, /* DiagSubGroup3 */ 9},
16811683// / #endif
16821684// / \endcode
1683- static void emitDiagTable (std::map<std::string, GroupInfo> &DiagsInGroup,
1685+ static void emitDiagTable (DiagsInGroupTy &DiagsInGroup,
16841686 RecordVec &DiagsInPedantic,
16851687 RecordVec &GroupsInPedantic,
16861688 const StringToOffsetTable &GroupNames,
@@ -1782,7 +1784,7 @@ void clang::EmitClangDiagGroups(const RecordKeeper &Records, raw_ostream &OS) {
17821784 ArrayRef<const Record *> DiagGroups =
17831785 Records.getAllDerivedDefinitions (" DiagGroup" );
17841786
1785- std::map<std::string, GroupInfo> DiagsInGroup;
1787+ DiagsInGroupTy DiagsInGroup;
17861788 groupDiagnostics (Diags, DiagGroups, DiagsInGroup);
17871789
17881790 // All extensions are implicitly in the "pedantic" group. Record the
@@ -1856,11 +1858,11 @@ namespace docs {
18561858namespace {
18571859
18581860bool isRemarkGroup (const Record *DiagGroup,
1859- const std::map<std::string, GroupInfo> &DiagsInGroup) {
1861+ const DiagsInGroupTy &DiagsInGroup) {
18601862 bool AnyRemarks = false , AnyNonRemarks = false ;
18611863
18621864 std::function<void (StringRef)> Visit = [&](StringRef GroupName) {
1863- auto &GroupInfo = DiagsInGroup.find (std::string ( GroupName) )->second ;
1865+ auto &GroupInfo = DiagsInGroup.find (GroupName)->second ;
18641866 for (const Record *Diag : GroupInfo.DiagsInGroup )
18651867 (isRemark (*Diag) ? AnyRemarks : AnyNonRemarks) = true ;
18661868 for (const auto &Name : GroupInfo.SubGroups )
@@ -1880,13 +1882,12 @@ std::string getDefaultSeverity(const Record *Diag) {
18801882 Diag->getValueAsDef (" DefaultSeverity" )->getValueAsString (" Name" ));
18811883}
18821884
1883- std::set<std::string>
1884- getDefaultSeverities (const Record *DiagGroup,
1885- const std::map<std::string, GroupInfo> &DiagsInGroup) {
1885+ std::set<std::string> getDefaultSeverities (const Record *DiagGroup,
1886+ const DiagsInGroupTy &DiagsInGroup) {
18861887 std::set<std::string> States;
18871888
18881889 std::function<void (StringRef)> Visit = [&](StringRef GroupName) {
1889- auto &GroupInfo = DiagsInGroup.find (std::string ( GroupName) )->second ;
1890+ auto &GroupInfo = DiagsInGroup.find (GroupName)->second ;
18901891 for (const Record *Diag : GroupInfo.DiagsInGroup )
18911892 States.insert (getDefaultSeverity (Diag));
18921893 for (const auto &Name : GroupInfo.SubGroups )
@@ -1940,7 +1941,7 @@ void clang::EmitClangDiagDocs(const RecordKeeper &Records, raw_ostream &OS) {
19401941
19411942 DiagGroupParentMap DGParentMap (Records);
19421943
1943- std::map<std::string, GroupInfo> DiagsInGroup;
1944+ DiagsInGroupTy DiagsInGroup;
19441945 groupDiagnostics (Diags, DiagGroups, DiagsInGroup);
19451946
19461947 // Compute the set of diagnostics that are in -Wpedantic.
0 commit comments