clang: lib/Basic/XRayLists.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

16#include "llvm/Support/SpecialCaseList.h"

17

18using namespace clang;

19

24 : AlwaysInstrument(llvm::SpecialCaseList::createOrDie(

25 AlwaysInstrumentPaths, SM.getFileManager().getVirtualFileSystem())),

26 NeverInstrument(llvm::SpecialCaseList::createOrDie(

27 NeverInstrumentPaths, SM.getFileManager().getVirtualFileSystem())),

28 AttrList(llvm::SpecialCaseList::createOrDie(

29 AttrListPaths, SM.getFileManager().getVirtualFileSystem())),

31

33

36

37

38

39 if (AlwaysInstrument->inSection("xray_always_instrument", "fun", FunctionName,

40 "arg1") ||

41 AttrList->inSection("always", "fun", FunctionName, "arg1"))

43 if (AlwaysInstrument->inSection("xray_always_instrument", "fun",

44 FunctionName) ||

45 AttrList->inSection("always", "fun", FunctionName))

47

48 if (NeverInstrument->inSection("xray_never_instrument", "fun",

49 FunctionName) ||

50 AttrList->inSection("never", "fun", FunctionName))

52

54}

55

59 if (AlwaysInstrument->inSection("xray_always_instrument", "src", Filename,

63 if (NeverInstrument->inSection("xray_never_instrument", "src", Filename,

68}

69

77}

Defines the clang::FileManager interface and associated types.

Defines the SourceManager interface.

Encodes a location in the source.

bool isValid() const

Return true if this is a valid SourceLocation object.

This class handles loading and caching of source files into memory.

SourceLocation getFileLoc(SourceLocation Loc) const

Given Loc, if it is a macro location return the expansion location or the spelling location,...

StringRef getFilename(SourceLocation SpellingLoc) const

Return the filename of the file containing a SourceLocation.

ImbueAttribute shouldImbueLocation(SourceLocation Loc, StringRef Category=StringRef()) const

ImbueAttribute shouldImbueFunctionsInFile(StringRef Filename, StringRef Category=StringRef()) const

ImbueAttribute shouldImbueFunction(StringRef FunctionName) const

XRayFunctionFilter(ArrayRef< std::string > AlwaysInstrumentPaths, ArrayRef< std::string > NeverInstrumentPaths, ArrayRef< std::string > AttrListPaths, SourceManager &SM)

The JSON file list parser is used to communicate input to InstallAPI.

Diagnostic wrappers for TextAPI types for error reporting.