|
LLVM 23.0.0git
|
#include "llvm/FileCheck/FileCheck.h"#include "FileCheckImpl.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/StringExtras.h"#include "llvm/ADT/StringSet.h"#include "llvm/ADT/Twine.h"#include "llvm/Support/FormatVariadic.h"#include <cstdint>#include <list>#include <set>#include <tuple>#include <utility>Go to the source code of this file.
Classes | |
| struct | PrefixMatcher |
Functions | |
| static unsigned | nextAPIntBitWidth (unsigned BitWidth) |
| static APInt | toSigned (APInt AbsVal, bool Negative) |
| static char | popFront (StringRef &S) |
| static SMRange | ProcessMatchResult (FileCheckDiag::MatchType MatchTy, const SourceMgr &SM, SMLoc Loc, Check::FileCheckType CheckTy, StringRef Buffer, size_t Pos, size_t Len, std::vector< FileCheckDiag > *Diags, bool AdjustPrevDiags=false) |
| static bool | IsPartOfWord (char c) |
| static std::pair< Check::FileCheckType, StringRef > | FindCheckType (const FileCheckRequest &Req, StringRef Buffer, StringRef Prefix, bool &Misspelled) |
| static std::pair< Check::FileCheckType, StringRef > | FindCheckType (const FileCheckRequest &Req, StringRef Buffer, StringRef Prefix) |
| static size_t | SkipWord (StringRef Str, size_t Loc) |
| static void | addDefaultPrefixes (FileCheckRequest &Req) |
| static std::pair< StringRef, StringRef > | FindFirstMatchingPrefix (const FileCheckRequest &Req, PrefixMatcher &Matcher, StringRef &Buffer, unsigned &LineNumber, Check::FileCheckType &CheckTy) |
| Searches the buffer for the first prefix in the prefix regular expression. | |
| static Error | printMatch (bool ExpectedMatch, const SourceMgr &SM, StringRef Prefix, SMLoc Loc, const Pattern &Pat, int MatchedCount, StringRef Buffer, Pattern::MatchResult MatchResult, const FileCheckRequest &Req, std::vector< FileCheckDiag > *Diags) |
Returns either (1) ErrorSuccess if there was no error or (2) ErrorReported if an error was reported, such as an unexpected match. | |
| static Error | printNoMatch (bool ExpectedMatch, const SourceMgr &SM, StringRef Prefix, SMLoc Loc, const Pattern &Pat, int MatchedCount, StringRef Buffer, Error MatchError, bool VerboseVerbose, std::vector< FileCheckDiag > *Diags) |
Returns either (1) ErrorSuccess if there was no error, or (2) ErrorReported if an error was reported, such as an expected match not found. | |
| static Error | reportMatchResult (bool ExpectedMatch, const SourceMgr &SM, StringRef Prefix, SMLoc Loc, const Pattern &Pat, int MatchedCount, StringRef Buffer, Pattern::MatchResult MatchResult, const FileCheckRequest &Req, std::vector< FileCheckDiag > *Diags) |
Returns either (1) ErrorSuccess if there was no error, or (2) ErrorReported if an error was reported. | |
| static unsigned | CountNumNewlinesBetween (StringRef Range, const char *&FirstNewLine) |
| Counts the number of newlines in the specified range. | |
| static bool | ValidatePrefixes (StringRef Kind, StringSet<> &UniquePrefixes, ArrayRef< StringRef > SuppliedPrefixes) |
Variables | |
| static constexpr int | BackrefLimit = 20 |
| constexpr StringLiteral | SpaceChars = " \t" |
| static const char * | DefaultCheckPrefixes [] = {"CHECK"} |
| static const char * | DefaultCommentPrefixes [] = {"COM", "RUN"} |
|
static |
Definition at line 1705 of file FileCheck.cpp.
References llvm::append_range(), llvm::FileCheckRequest::CheckPrefixes, llvm::FileCheckRequest::CommentPrefixes, DefaultCheckPrefixes, DefaultCommentPrefixes, and llvm::FileCheckRequest::IsDefaultCheckPrefix.
Referenced by llvm::FileCheck::readCheckFile().
Counts the number of newlines in the specified range.
Definition at line 2200 of file FileCheck.cpp.
References Range.
Referenced by llvm::FileCheckString::CheckNext(), and llvm::FileCheckString::CheckSame().
|
static |
Definition at line 1687 of file FileCheck.cpp.
References llvm::Check::CheckMisspelled, llvm::Check::CheckNone, and FindCheckType().
|
static |
Definition at line 1597 of file FileCheck.cpp.
References llvm::Check::CheckBadCount, llvm::Check::CheckBadNot, llvm::Check::CheckComment, llvm::Check::CheckDAG, llvm::Check::CheckEmpty, llvm::Check::CheckLabel, llvm::Check::CheckNext, llvm::Check::CheckNone, llvm::Check::CheckNot, llvm::Check::CheckPlain, llvm::Check::CheckSame, llvm::FileCheckRequest::CommentPrefixes, llvm::StringRef::consume_front(), llvm::StringRef::consumeInteger(), llvm::Count, llvm::StringRef::drop_front(), llvm::StringRef::front(), llvm::is_contained(), llvm::StringRef::ltrim(), llvm::StringRef::size(), and llvm::StringRef::starts_with().
Referenced by FindCheckType(), and FindFirstMatchingPrefix().
|
static |
Searches the buffer for the first prefix in the prefix regular expression.
This searches the buffer using the provided regular expression, however it enforces constraints beyond that: 1) The found prefix must not be a suffix of something that looks like a valid prefix. 2) The found prefix must be followed by a valid check type suffix using FindCheckType above.
If this routine returns a valid prefix, it will also shrink Buffer to start at the beginning of the returned prefix, increment LineNumber for each new line consumed from Buffer, and set CheckTy to the type of check found by examining the suffix.
If no valid prefix is found, the state of Buffer, LineNumber, and CheckTy is unspecified.
Definition at line 1778 of file FileCheck.cpp.
References assert(), llvm::Check::CheckNone, llvm::StringRef::data(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), FindCheckType(), IsPartOfWord(), llvm::StringRef::size(), SkipWord(), and llvm::StringRef::substr().
Referenced by llvm::FileCheck::readCheckFile().
Definition at line 1533 of file FileCheck.cpp.
References llvm::isAlnum().
Referenced by FindFirstMatchingPrefix(), and SkipWord().
Definition at line 124 of file FileCheck.cpp.
References llvm::APInt::APINT_BITS_PER_WORD, and llvm::BitWidth.
Referenced by llvm::BinaryOperation::eval(), and toSigned().
Definition at line 366 of file FileCheck.cpp.
References llvm::CallingConv::C, llvm::StringRef::drop_front(), and llvm::StringRef::front().
Referenced by llvm::Pattern::parseNumericSubstitutionBlock().
|
static |
Returns either (1) ErrorSuccess if there was no error or (2) ErrorReported if an error was reported, such as an unexpected match.
Definition at line 2032 of file FileCheck.cpp.
References assert(), llvm::Check::CheckEOF, llvm::SourceMgr::DK_Error, llvm::SourceMgr::DK_Note, llvm::SourceMgr::DK_Remark, E(), llvm::formatv(), llvm::Pattern::getCheckTy(), llvm::Pattern::getCount(), llvm::Check::FileCheckType::getDescription(), llvm::handleAllErrors(), llvm::FileCheckDiag::MatchFoundAndExpected, llvm::FileCheckDiag::MatchFoundButExcluded, llvm::SourceMgr::PrintMessage(), llvm::Pattern::printSubstitutions(), llvm::Pattern::printVariableDefs(), ProcessMatchResult(), llvm::ErrorReported::reportedOrSuccess(), llvm::SMRange::Start, llvm::Pattern::MatchResult::TheError, llvm::Pattern::MatchResult::TheMatch, llvm::FileCheckRequest::Verbose, and llvm::FileCheckRequest::VerboseVerbose.
Referenced by llvm::FileCheckString::CheckDag(), and reportMatchResult().
|
static |
Returns either (1) ErrorSuccess if there was no error, or (2) ErrorReported if an error was reported, such as an expected match not found.
Definition at line 2102 of file FileCheck.cpp.
References assert(), llvm::SourceMgr::DK_Error, llvm::SourceMgr::DK_Note, llvm::SourceMgr::DK_Remark, E(), llvm::errs(), llvm::formatv(), llvm::Pattern::getCheckTy(), llvm::Pattern::getCount(), llvm::Check::FileCheckType::getDescription(), llvm::handleAllErrors(), llvm::FileCheckDiag::MatchNoneAndExcluded, llvm::FileCheckDiag::MatchNoneButExpected, llvm::FileCheckDiag::MatchNoneForInvalidPattern, llvm::Pattern::printFuzzyMatch(), llvm::SourceMgr::PrintMessage(), llvm::Pattern::printSubstitutions(), ProcessMatchResult(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ErrorReported::reportedOrSuccess(), llvm::StringRef::size(), and llvm::SMRange::Start.
Referenced by reportMatchResult().
|
static |
Definition at line 1349 of file FileCheck.cpp.
References llvm::StringRef::data(), E(), llvm::SMLoc::getFromPointer(), I, and Range.
Referenced by llvm::FileCheckString::Check(), llvm::Pattern::printFuzzyMatch(), printMatch(), and printNoMatch().
|
static |
Returns either (1) ErrorSuccess if there was no error, or (2) ErrorReported if an error was reported.
Definition at line 2185 of file FileCheck.cpp.
References printMatch(), printNoMatch(), llvm::Pattern::MatchResult::TheError, llvm::Pattern::MatchResult::TheMatch, and llvm::FileCheckRequest::VerboseVerbose.
Referenced by llvm::FileCheckString::Check(), llvm::FileCheckString::CheckDag(), and llvm::FileCheckString::CheckNot().
|
static |
Definition at line 1696 of file FileCheck.cpp.
References IsPartOfWord().
Referenced by FindFirstMatchingPrefix().
Definition at line 129 of file FileCheck.cpp.
References llvm::APInt::getBitWidth(), llvm::APInt::isSignBitSet(), nextAPIntBitWidth(), and llvm::APInt::zext().
Referenced by llvm::ExpressionFormat::valueFromStringRepr().
|
static |
Definition at line 2525 of file FileCheck.cpp.
References llvm::errs(), llvm::StringSet< AllocatorTy >::insert(), and llvm::Regex::match().
Referenced by llvm::FileCheck::ValidateCheckPrefixes().
|
staticconstexpr |
Definition at line 31 of file FileCheck.cpp.
Referenced by llvm::Pattern::parsePattern().
Definition at line 1702 of file FileCheck.cpp.
Referenced by addDefaultPrefixes(), and llvm::FileCheck::ValidateCheckPrefixes().
Definition at line 1703 of file FileCheck.cpp.
Referenced by addDefaultPrefixes(), and llvm::FileCheck::ValidateCheckPrefixes().
|
constexpr |
Definition at line 363 of file FileCheck.cpp.
Referenced by llvm::Pattern::parseNumericSubstitutionBlock().