clang: clang::PreprocessorOptions Class Reference (original) (raw)

PreprocessorOptions - This class is used for passing the various options used in preprocessor initialization to InitializePreprocessor(). More...

#include "[clang/Lex/PreprocessorOptions.h](PreprocessorOptions%5F8h%5Fsource.html)"

Public Member Functions
PreprocessorOptions ()
void addMacroDef (StringRef Name)
void addMacroUndef (StringRef Name)
void addRemappedFile (StringRef From, StringRef To)
void addRemappedFile (StringRef From, llvm::MemoryBuffer *To)
void clearRemappedFiles ()
void resetNonModularOptions ()
Reset any options that are not considered when building a module.
Public Attributes
std::vector< std::pair< std::string, bool > > Macros
std::vector< std::string > Includes
std::vector< std::string > MacroIncludes
bool ModulesCheckRelocated = true
Perform extra checks when loading PCM files for mutable file systems.
bool UsePredefines = true
Initialize the preprocessor with the compiler and target specific predefines.
bool DefineTargetOSMacros = false
Indicates whether to predefine target OS macros.
bool DetailedRecord = false
Whether we should maintain a detailed record of all macro definitions and expansions.
bool PCHWithHdrStop = false
When true, we are creating or using a PCH where a #pragma hdrstop is expected to indicate the beginning or end of the PCH.
bool PCHWithHdrStopCreate = false
When true, we are creating a PCH or creating the PCH object while expecting a #pragma hdrstop to separate the two.
std::string PCHThroughHeader
If non-empty, the filename used in an #include directive in the primary source file (or command-line preinclude) that is used to implement MSVC-style precompiled headers.
std::string ImplicitPCHInclude
The implicit PCH included at the start of the translation unit, or empty.
std::vector< std::string > ChainedIncludes
Headers that will be converted to chained PCHs in memory.
DisableValidationForModuleKind DisablePCHOrModuleValidation
Whether to disable most of the normal validation performed on precompiled headers and module files.
bool AllowPCHWithCompilerErrors = false
When true, a PCH with compiler errors will not be rejected.
bool AllowPCHWithDifferentModulesCachePath = false
When true, a PCH with modules cache path different to the current compilation will not be rejected.
bool DumpDeserializedPCHDecls = false
Dump declarations that are deserialized from PCH, for testing.
std::set< std::string > DeserializedPCHDeclsToErrorOn
This is a set of names for decls that we do not want to be deserialized, and we emit an error if they are; for testing purposes.
std::pair< unsigned, bool > PrecompiledPreambleBytes
If non-zero, the implicit PCH include is actually a precompiled preamble that covers this number of bytes in the main source file.
bool GeneratePreamble = false
True indicates that a preamble is being generated.
bool WriteCommentListToPCH = true
Whether to write comment locations into the PCH when building it.
bool SingleFileParseMode = false
When enabled, preprocessor is in a mode for parsing a single file only.
bool LexEditorPlaceholders = true
When enabled, the preprocessor will construct editor placeholder tokens.
bool RemappedFilesKeepOriginalName = true
True if the SourceManager should report the original file name for contents of files that were remapped to other files.
std::vector< std::pair< std::string, std::string > > RemappedFiles
The set of file remappings, which take existing files on the system (the first part of each pair) and gives them the contents of other files on the system (the second part of each pair).
std::vector< std::pair< std::string, llvm::MemoryBuffer * > > RemappedFileBuffers
The set of file-to-buffer remappings, which take existing files on the system (the first part of each pair) and gives them the contents of the specified memory buffer (the second part of each pair).
std::vector< std::string > EmbedEntries
User specified embed entries.
bool RetainRemappedFileBuffers = false
Whether the compiler instance should retain (i.e., not free) the buffers associated with remapped files.
bool RetainExcludedConditionalBlocks = false
When enabled, excluded conditional blocks retain in the main file.
ObjCXXARCStandardLibraryKind ObjCXXARCStandardLibrary = ARCXX_nolib
The Objective-C++ ARC standard library that we should support, by providing appropriate definitions to retrofit the standard library with support for lifetime-qualified pointers.
std::function< std::optional< ArrayRef< dependency_directives_scan::Directive > >(FileEntryRef)> DependencyDirectivesForFile
Function for getting the dependency preprocessor directives of a file.
bool SetUpStaticAnalyzer = false
Set up preprocessor for RunAnalysis action.
bool DisablePragmaDebugCrash = false
Prevents intended crashes when using #pragma clang __debug. For testing.
std::optional< uint64_t > SourceDateEpoch
If set, the UNIX timestamp specified by SOURCE_DATE_EPOCH.

PreprocessorOptions - This class is used for passing the various options used in preprocessor initialization to InitializePreprocessor().

Definition at line 66 of file PreprocessorOptions.h.

clang::PreprocessorOptions::PreprocessorOptions ( ) inline

addMacroDef()

void clang::PreprocessorOptions::addMacroDef ( StringRef Name) inline

addMacroUndef()

void clang::PreprocessorOptions::addMacroUndef ( StringRef Name) inline

addRemappedFile() [1/2]

void clang::PreprocessorOptions::addRemappedFile ( StringRef From, llvm::MemoryBuffer * To ) inline

addRemappedFile() [2/2]

void clang::PreprocessorOptions::addRemappedFile ( StringRef From, StringRef To ) inline

clearRemappedFiles()

void clang::PreprocessorOptions::clearRemappedFiles ( ) inline

resetNonModularOptions()

void clang::PreprocessorOptions::resetNonModularOptions ( ) inline

AllowPCHWithCompilerErrors

bool clang::PreprocessorOptions::AllowPCHWithCompilerErrors = false

AllowPCHWithDifferentModulesCachePath

bool clang::PreprocessorOptions::AllowPCHWithDifferentModulesCachePath = false

ChainedIncludes

std::vectorstd::string clang::PreprocessorOptions::ChainedIncludes

DefineTargetOSMacros

bool clang::PreprocessorOptions::DefineTargetOSMacros = false

DependencyDirectivesForFile

Function for getting the dependency preprocessor directives of a file.

These are directives derived from a special form of lexing where the source input is scanned for the preprocessor directives that might have an effect on the dependencies for a compilation unit.

Enables a client to cache the directives for a file and provide them across multiple compiler invocations. FIXME: Allow returning an error.

Definition at line 203 of file PreprocessorOptions.h.

DeserializedPCHDeclsToErrorOn

std::setstd::string clang::PreprocessorOptions::DeserializedPCHDeclsToErrorOn

DetailedRecord

bool clang::PreprocessorOptions::DetailedRecord = false

DisablePCHOrModuleValidation

DisablePragmaDebugCrash

bool clang::PreprocessorOptions::DisablePragmaDebugCrash = false

Prevents intended crashes when using #pragma clang __debug. For testing.

Definition at line 209 of file PreprocessorOptions.h.

DumpDeserializedPCHDecls

bool clang::PreprocessorOptions::DumpDeserializedPCHDecls = false

EmbedEntries

std::vectorstd::string clang::PreprocessorOptions::EmbedEntries

GeneratePreamble

bool clang::PreprocessorOptions::GeneratePreamble = false

True indicates that a preamble is being generated.

When the lexer is done, one of the things that need to be preserved is the conditional if stack, so the ASTWriter/ASTReader can save/restore it when processing the rest of the file. Similarly, we track an unterminated #pragma assume_nonnull.

Definition at line 141 of file PreprocessorOptions.h.

Referenced by clang::PrecompiledPreamble::Build().

ImplicitPCHInclude

std::string clang::PreprocessorOptions::ImplicitPCHInclude

Includes

std::vectorstd::string clang::PreprocessorOptions::Includes

LexEditorPlaceholders

bool clang::PreprocessorOptions::LexEditorPlaceholders = true

MacroIncludes

std::vectorstd::string clang::PreprocessorOptions::MacroIncludes

Macros

std::vector<std::pair<std::string, bool> > clang::PreprocessorOptions::Macros

ModulesCheckRelocated

bool clang::PreprocessorOptions::ModulesCheckRelocated = true

Perform extra checks when loading PCM files for mutable file systems.

Definition at line 73 of file PreprocessorOptions.h.

ObjCXXARCStandardLibrary

The Objective-C++ ARC standard library that we should support, by providing appropriate definitions to retrofit the standard library with support for lifetime-qualified pointers.

Definition at line 190 of file PreprocessorOptions.h.

Referenced by clang::InitializePreprocessor().

PCHThroughHeader

std::string clang::PreprocessorOptions::PCHThroughHeader

If non-empty, the filename used in an #include directive in the primary source file (or command-line preinclude) that is used to implement MSVC-style precompiled headers.

When creating a PCH, after the #include of this header, the PCH generation stops. When using a PCH, tokens are skipped until after an #include of this header is seen.

Definition at line 101 of file PreprocessorOptions.h.

Referenced by checkPreprocessorOptions().

PCHWithHdrStop

bool clang::PreprocessorOptions::PCHWithHdrStop = false

PCHWithHdrStopCreate

bool clang::PreprocessorOptions::PCHWithHdrStopCreate = false

When true, we are creating a PCH or creating the PCH object while expecting a #pragma hdrstop to separate the two.

Allow for a missing #pragma hdrstop, which generates a PCH for the whole file, and creates an empty PCH object.

Definition at line 94 of file PreprocessorOptions.h.

Referenced by GeneratePreprocessorArgs().

PrecompiledPreambleBytes

std::pair<unsigned, bool> clang::PreprocessorOptions::PrecompiledPreambleBytes

RemappedFileBuffers

std::vector<std::pair<std::string, llvm::MemoryBuffer *> > clang::PreprocessorOptions::RemappedFileBuffers

RemappedFiles

std::vector<std::pair<std::string, std::string> > clang::PreprocessorOptions::RemappedFiles

RemappedFilesKeepOriginalName

bool clang::PreprocessorOptions::RemappedFilesKeepOriginalName = true

RetainExcludedConditionalBlocks

bool clang::PreprocessorOptions::RetainExcludedConditionalBlocks = false

RetainRemappedFileBuffers

bool clang::PreprocessorOptions::RetainRemappedFileBuffers = false

SetUpStaticAnalyzer

bool clang::PreprocessorOptions::SetUpStaticAnalyzer = false

SingleFileParseMode

bool clang::PreprocessorOptions::SingleFileParseMode = false

When enabled, preprocessor is in a mode for parsing a single file only.

Disables #includes of other files and if there are unresolved identifiers in preprocessor directive conditions it causes all blocks to be parsed so that the client can get the maximum amount of information from the parser.

Definition at line 153 of file PreprocessorOptions.h.

Referenced by clang::ASTUnit::LoadFromCommandLine(), and resetNonModularOptions().

SourceDateEpoch

std::optional<uint64_t> clang::PreprocessorOptions::SourceDateEpoch

UsePredefines

bool clang::PreprocessorOptions::UsePredefines = true

WriteCommentListToPCH

bool clang::PreprocessorOptions::WriteCommentListToPCH = true

Whether to write comment locations into the PCH when building it.

Reading the comments from the PCH can be a performance hit even if the clients don't use them.

Definition at line 146 of file PreprocessorOptions.h.


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