}
void compile(Fragment::DiagnosticsBlock &&F) {
- std::vector<llvm::StringRef> Normalized;
+ std::vector<std::string> Normalized;
for (const auto &Suppressed : F.Suppress) {
if (*Suppressed == "*") {
Out.Apply.push_back([&](const Params &, Config &C) {
});
return;
}
- Normalized.push_back(normalizeSuppressedCode(*Suppressed));
+ Normalized.push_back(normalizeSuppressedCode(*Suppressed).str());
}
if (!Normalized.empty())
- Out.Apply.push_back([Normalized](const Params &, Config &C) {
- if (C.Diagnostics.SuppressAll)
- return;
- for (llvm::StringRef N : Normalized)
- C.Diagnostics.Suppress.insert(N);
- });
+ Out.Apply.push_back(
+ [Normalized(std::move(Normalized))](const Params &, Config &C) {
+ if (C.Diagnostics.SuppressAll)
+ return;
+ for (llvm::StringRef N : Normalized)
+ C.Diagnostics.Suppress.insert(N);
+ });
compile(std::move(F.ClangTidy));
}