llvm::SpecialCaseList

This is a utility class used to parse user-provided text files with "special case lists" for code sanitizers.

Synopsis

Declared in <llvm/Support/SpecialCaseList.h>

class SpecialCaseList;

Description

Such files are used to define an "ABI list" for DataFlowSanitizer and allow/exclusion lists for sanitizers like AddressSanitizer or UndefinedBehaviorSanitizer. Empty lines and lines starting with "#" are ignored. Sections are defined using a '[section_name]' header and can be used to specify sanitizers the entries below it apply to. Section names are globs, and entries without a section header match all sections (e.g. an '[]' header is assumed.) The remaining lines should have the form: prefix:glob_pattern[=category]If category is not specified, it is assumed to be empty string. Definitions of "prefix" and "category" are sanitizer-specific. For example, sanitizer exclusion support prefixes "src", "mainfile", "fun" and "global". "glob_pattern" defines source files, main files, functions or globals which shouldn't be instrumented. Examples of categories: "functional": used in DFSan to list functions with pure functional semantics. "init": used in ASan exclusion list to disable initialization-order bugs detection for certain globals or source files. Full special case list file example: --- [address]# Excluded items: fun:

Member Functions

NameDescription
~SpecialCaseList [destructor]Destructor
inSection Returns true, if special case list contains a line
inSectionBlame Returns the file index and the line number <FileIdx, LineNo> corresponding to the special case list entry if the special case list contains a line

Static Member Functions

NameDescription
create create overloads
createOrDie Parses the special case list entries from files. On failure, reports a fatal error.

Static Data Members

Name
NotFound

Protected Types

Name
Section

Protected Member Functions

NameDescription
SpecialCaseList [constructor]Constructors
operator= [deleted]Copy assignment operator
createInternal
sections