12#ifndef LLVM_SUPPORT_SPECIALCASELIST_H
13#define LLVM_SUPPORT_SPECIALCASELIST_H
73 static std::unique_ptr<SpecialCaseList>
82 static std::unique_ptr<SpecialCaseList>
127 std::vector<std::pair<std::unique_ptr<Regex>,
unsigned>> RegExes;
143 bool UseGlobs =
true);
This file defines the StringMap class.
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
This interface provides simple read-only access to a block of memory, and provides simple methods for...
Represents a set of globs and their line numbers.
unsigned match(StringRef Query) const
Error insert(StringRef Pattern, unsigned LineNumber, bool UseRegex)
This is a utility class used to parse user-provided text files with "special case lists" for code san...
SpecialCaseList & operator=(SpecialCaseList const &)=delete
SpecialCaseList(SpecialCaseList const &)=delete
bool createInternal(const std::vector< std::string > &Paths, vfs::FileSystem &VFS, std::string &Error)
static std::unique_ptr< SpecialCaseList > createOrDie(const std::vector< std::string > &Paths, llvm::vfs::FileSystem &FS)
Parses the special case list entries from files.
static std::unique_ptr< SpecialCaseList > create(const std::vector< std::string > &Paths, llvm::vfs::FileSystem &FS, std::string &Error)
Parses the special case list entries from files.
StringMap< Section > Sections
SpecialCaseList()=default
unsigned inSectionBlame(StringRef Section, StringRef Prefix, StringRef Query, StringRef Category=StringRef()) const
Returns the line number corresponding to the special case list entry if the special case list contain...
Expected< Section * > addSection(StringRef SectionStr, unsigned LineNo, bool UseGlobs=true)
bool inSection(StringRef Section, StringRef Prefix, StringRef Query, StringRef Category=StringRef()) const
Returns true, if special case list contains a line.
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
StringRef - Represent a constant reference to a string, i.e.
The virtual file system interface.
This is an optimization pass for GlobalISel generic memory operations.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.
Section(std::unique_ptr< Matcher > M)
std::unique_ptr< Matcher > SectionMatcher