================ @@ -1553,15 +1526,13 @@ static void emitDiagSubGroups(std::map<std::string, GroupInfo> &DiagsInGroup, RecordVec &GroupsInPedantic, raw_ostream &OS) { OS << "static const int16_t DiagSubGroups[] = {\n" << " /* Empty */ -1,\n"; - for (auto const &I : DiagsInGroup) { - const bool IsPedantic = I.first == "pedantic"; - - const std::vector<std::string> &SubGroups = I.second.SubGroups; + for (auto const &[Name, Group] : DiagsInGroup) { ---------------- jurahul wrote:
If I remove the &, I get: >warning: loop variable '[Name, Group]' creates a copy from type >'std::pair<const std::basic_string<char>, (anonymous > namespace)::GroupInfo> >const' [-Wrange-loop-construct So the & here seems required to prevent copies. https://github.com/llvm/llvm-project/pull/115573 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits