LLVM 17.0.0git
Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
llvm::SpecialCaseList Class Reference

#include "llvm/Support/SpecialCaseList.h"

Collaboration diagram for llvm::SpecialCaseList:
Collaboration graph
[legend]

Classes

class  Matcher
 Represents a set of regular expressions. More...
 
struct  Section
 

Public Member Functions

 ~SpecialCaseList ()
 
bool inSection (StringRef Section, StringRef Prefix, StringRef Query, StringRef Category=StringRef()) const
 Returns true, if special case list contains a line.
 
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 contains a line.
 

Static Public Member Functions

static std::unique_ptr< SpecialCaseListcreate (const std::vector< std::string > &Paths, llvm::vfs::FileSystem &FS, std::string &Error)
 Parses the special case list entries from files.
 
static std::unique_ptr< SpecialCaseListcreate (const MemoryBuffer *MB, std::string &Error)
 Parses the special case list from a memory buffer.
 
static std::unique_ptr< SpecialCaseListcreateOrDie (const std::vector< std::string > &Paths, llvm::vfs::FileSystem &FS)
 Parses the special case list entries from files.
 

Protected Types

using SectionEntries = StringMap< StringMap< Matcher > >
 

Protected Member Functions

bool createInternal (const std::vector< std::string > &Paths, vfs::FileSystem &VFS, std::string &Error)
 
bool createInternal (const MemoryBuffer *MB, std::string &Error)
 
 SpecialCaseList ()=default
 
 SpecialCaseList (SpecialCaseList const &)=delete
 
SpecialCaseListoperator= (SpecialCaseList const &)=delete
 
bool parse (const MemoryBuffer *MB, StringMap< size_t > &SectionsMap, std::string &Error)
 Parses just-constructed SpecialCaseList entries from a memory buffer.
 
unsigned inSectionBlame (const SectionEntries &Entries, StringRef Prefix, StringRef Query, StringRef Category) const
 

Protected Attributes

std::vector< SectionSections
 

Detailed Description

Definition at line 70 of file SpecialCaseList.h.

Member Typedef Documentation

◆ SectionEntries

Definition at line 135 of file SpecialCaseList.h.

Constructor & Destructor Documentation

◆ ~SpecialCaseList()

llvm::SpecialCaseList::~SpecialCaseList ( )
default

◆ SpecialCaseList() [1/2]

llvm::SpecialCaseList::SpecialCaseList ( )
protecteddefault

Referenced by create().

◆ SpecialCaseList() [2/2]

llvm::SpecialCaseList::SpecialCaseList ( SpecialCaseList const )
protecteddelete

Member Function Documentation

◆ create() [1/2]

std::unique_ptr< SpecialCaseList > llvm::SpecialCaseList::create ( const MemoryBuffer MB,
std::string &  Error 
)
static

Parses the special case list from a memory buffer.

On failure, returns 0 and writes an error message to string.

Definition at line 81 of file SpecialCaseList.cpp.

References SpecialCaseList().

◆ create() [2/2]

std::unique_ptr< SpecialCaseList > llvm::SpecialCaseList::create ( const std::vector< std::string > &  Paths,
llvm::vfs::FileSystem FS,
std::string &  Error 
)
static

Parses the special case list entries from files.

On failure, returns 0 and writes an error message to string.

Definition at line 73 of file SpecialCaseList.cpp.

References Paths, and SpecialCaseList().

Referenced by createOrDie().

◆ createInternal() [1/2]

bool llvm::SpecialCaseList::createInternal ( const MemoryBuffer MB,
std::string &  Error 
)
protected

Definition at line 117 of file SpecialCaseList.cpp.

References Sections.

◆ createInternal() [2/2]

bool llvm::SpecialCaseList::createInternal ( const std::vector< std::string > &  Paths,
vfs::FileSystem VFS,
std::string &  Error 
)
protected

◆ createOrDie()

std::unique_ptr< SpecialCaseList > llvm::SpecialCaseList::createOrDie ( const std::vector< std::string > &  Paths,
llvm::vfs::FileSystem FS 
)
static

Parses the special case list entries from files.

On failure, reports a fatal error.

Definition at line 90 of file SpecialCaseList.cpp.

References create(), Paths, and llvm::report_fatal_error().

Referenced by llvm::SanitizerBinaryMetadataPass::run(), and llvm::SanitizerCoveragePass::SanitizerCoveragePass().

◆ inSection()

bool llvm::SpecialCaseList::inSection ( StringRef  Section,
StringRef  Prefix,
StringRef  Query,
StringRef  Category = StringRef() 
) const

Returns true, if special case list contains a line.

@Prefix:<E>=@Category
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")

where @Query satisfies wildcard expression <E> in a given @Section.

Definition at line 203 of file SpecialCaseList.cpp.

References inSectionBlame().

◆ inSectionBlame() [1/2]

unsigned llvm::SpecialCaseList::inSectionBlame ( const SectionEntries Entries,
StringRef  Prefix,
StringRef  Query,
StringRef  Category 
) const
protected

Definition at line 221 of file SpecialCaseList.cpp.

References I.

◆ inSectionBlame() [2/2]

unsigned llvm::SpecialCaseList::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 contains a line.

@Prefix:<E>=@Category

where @Query satisfies wildcard expression <E> in a given @Section. Returns zero if there is no exclusion entry corresponding to this expression.

Definition at line 208 of file SpecialCaseList.cpp.

References inSectionBlame(), and Sections.

Referenced by inSection(), and inSectionBlame().

◆ operator=()

SpecialCaseList & llvm::SpecialCaseList::operator= ( SpecialCaseList const )
protecteddelete

◆ parse()

bool llvm::SpecialCaseList::parse ( const MemoryBuffer MB,
StringMap< size_t > &  SectionsMap,
std::string &  Error 
)
protected

Member Data Documentation

◆ Sections

std::vector<Section> llvm::SpecialCaseList::Sections
protected

Definition at line 144 of file SpecialCaseList.h.

Referenced by createInternal(), inSectionBlame(), and parse().


The documentation for this class was generated from the following files: