[PATCH] D90281: [FileCheck] Report missing prefixes when more than one is provided.
Mircea Trofin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 28 10:25:58 PDT 2020
mtrofin updated this revision to Diff 301326.
mtrofin marked 2 inline comments as done.
mtrofin added a comment.
using std::set for deterministic output and simpler code.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D90281/new/
https://reviews.llvm.org/D90281
Files:
llvm/lib/FileCheck/FileCheck.cpp
Index: llvm/lib/FileCheck/FileCheck.cpp
===================================================================
--- llvm/lib/FileCheck/FileCheck.cpp
+++ llvm/lib/FileCheck/FileCheck.cpp
@@ -22,6 +22,7 @@
#include "llvm/Support/FormatVariadic.h"
#include <cstdint>
#include <list>
+#include <set>
#include <tuple>
#include <utility>
@@ -1825,8 +1826,9 @@
// found.
unsigned LineNumber = 1;
- bool FoundUsedCheckPrefix = false;
- while (1) {
+ std::set<StringRef> PrefixesNotFound(Req.CheckPrefixes.begin(),
+ Req.CheckPrefixes.end());
+ while (true) {
Check::FileCheckType CheckTy;
// See if a prefix occurs in the memory buffer.
@@ -1837,7 +1839,7 @@
if (UsedPrefix.empty())
break;
if (CheckTy != Check::CheckComment)
- FoundUsedCheckPrefix = true;
+ PrefixesNotFound.erase(UsedPrefix);
assert(UsedPrefix.data() == Buffer.data() &&
"Failed to move Buffer's start forward, or pointed prefix outside "
@@ -1930,14 +1932,16 @@
// When there are no used prefixes we report an error except in the case that
// no prefix is specified explicitly but -implicit-check-not is specified.
- if (!FoundUsedCheckPrefix &&
+ if (!PrefixesNotFound.empty() &&
(ImplicitNegativeChecks.empty() || !Req.IsDefaultCheckPrefix)) {
errs() << "error: no check strings found with prefix"
<< (Req.CheckPrefixes.size() > 1 ? "es " : " ");
- for (size_t I = 0, E = Req.CheckPrefixes.size(); I != E; ++I) {
- if (I != 0)
+ bool First = true;
+ for (StringRef MissingPrefix : PrefixesNotFound) {
+ if (!First)
errs() << ", ";
- errs() << "\'" << Req.CheckPrefixes[I] << ":'";
+ errs() << "\'" << MissingPrefix << ":'";
+ First = false;
}
errs() << '\n';
return true;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90281.301326.patch
Type: text/x-patch
Size: 1839 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201028/235e206a/attachment.bin>
More information about the llvm-commits
mailing list