clang: clang::LangOptions Class Reference (original) (raw)
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that is accepted. More...
#include "[clang/Basic/LangOptions.h](LangOptions%5F8h%5Fsource.html)"
Public Member Functions | |
---|---|
LangOptions () | |
bool | isCompilingModule () const |
Are we compiling a module? | |
bool | isCompilingModuleImplementation () const |
Are we compiling a module implementation? | |
bool | trackLocalOwningModule () const |
Do we need to track the owning module for a local declaration? | |
bool | isSignedOverflowDefined () const |
bool | isSubscriptPointerArithmetic () const |
bool | isCompatibleWithMSVC (MSVCMajorVersion MajorVersion) const |
bool | isOverflowPatternExcluded (OverflowPatternExclusionKind Kind) const |
void | resetNonModularOptions () |
Reset all of the options that are not considered when building a module. | |
bool | isNoBuiltinFunc (StringRef Name) const |
Is this a libc/libm function that is no longer recognized as a builtin because a -fno-builtin-* option has been specified? | |
bool | allowsNonTrivialObjCLifetimeQualifiers () const |
True if any ObjC types may have non-trivial lifetime qualifiers. | |
bool | assumeFunctionsAreConvergent () const |
bool | threadPrivateMemoryAtomicsAreUndefined () const |
Return true if atomicrmw operations targeting allocations in private memory are undefined. | |
VersionTuple | getOpenCLVersionTuple () const |
Return the OpenCL C or C++ version as a VersionTuple. | |
unsigned | getOpenCLCompatibleVersion () const |
Return the OpenCL version that kernel language is compatible with. | |
std::string | getOpenCLVersionString () const |
Return the OpenCL C or C++ for OpenCL language name and version as a string. | |
bool | requiresStrictPrototypes () const |
Returns true if functions without prototypes or functions with an identifier list (aka K&R C functions) are not allowed. | |
bool | implicitFunctionsAllowed () const |
Returns true if implicit function declarations are allowed in the current language mode. | |
bool | hasAtExit () const |
Returns true if the language supports calling the 'atexit' function. | |
bool | isImplicitIntRequired () const |
Returns true if implicit int is part of the language requirements. | |
bool | isImplicitIntAllowed () const |
Returns true if implicit int is supported at all. | |
bool | hasSignReturnAddress () const |
Check if return address signing is enabled. | |
bool | isSignReturnAddressWithAKey () const |
Check if return address signing uses AKey. | |
bool | isSignReturnAddressScopeAll () const |
Check if leaf functions are also signed. | |
bool | hasSjLjExceptions () const |
bool | hasSEHExceptions () const |
bool | hasDWARFExceptions () const |
bool | hasWasmExceptions () const |
bool | isSYCL () const |
bool | hasDefaultVisibilityExportMapping () const |
bool | isExplicitDefaultVisibilityExportMapping () const |
bool | isAllDefaultVisibilityExportMapping () const |
bool | hasGlobalAllocationFunctionVisibility () const |
bool | hasDefaultGlobalAllocationFunctionVisibility () const |
bool | hasProtectedGlobalAllocationFunctionVisibility () const |
bool | hasHiddenGlobalAllocationFunctionVisibility () const |
void | remapPathPrefix (SmallVectorImpl< char > &Path) const |
Remap path prefix according to -fmacro-prefix-path option. | |
RoundingMode | getDefaultRoundingMode () const |
FPExceptionModeKind | getDefaultExceptionMode () const |
Public Attributes | |
---|---|
LangStandard::Kind | LangStd |
The used language standard. | |
SanitizerSet | Sanitize |
Set of enabled sanitizers. | |
bool | SanitizeCoverage = false |
Is at least one coverage instrumentation type enabled. | |
std::vector< std::string > | NoSanitizeFiles |
Paths to files specifying which objects (files, functions, variables) should not be instrumented. | |
std::vector< std::string > | XRayAlwaysInstrumentFiles |
Paths to the XRay "always instrument" files specifying which objects (files, functions, variables) should be imbued with the XRay "always instrument" attribute. | |
std::vector< std::string > | XRayNeverInstrumentFiles |
Paths to the XRay "never instrument" files specifying which objects (files, functions, variables) should be imbued with the XRay "never instrument" attribute. | |
std::vector< std::string > | XRayAttrListFiles |
Paths to the XRay attribute list files, specifying which objects (files, functions, variables) should be imbued with the appropriate XRay attribute(s). | |
std::vector< std::string > | ProfileListFiles |
Paths to special case list files specifying which entities (files, functions) should or should not be instrumented. | |
clang::ObjCRuntime | ObjCRuntime |
CoreFoundationABI | CFRuntime = CoreFoundationABI::Unspecified |
std::string | ObjCConstantStringClass |
std::string | OverflowHandler |
The name of the handler function to be called when -ftrapv is specified. | |
std::string | ModuleName |
The module currently being compiled as specified by -fmodule-name. | |
std::string | CurrentModule |
The name of the current module, of which the main source file is a part. | |
std::vector< std::string > | ModuleFeatures |
The names of any features to enable in module 'requires' decls in addition to the hard-coded list in Module.cpp and the target features. | |
CommentOptions | CommentOpts |
Options for parsing comments. | |
std::vector< std::string > | NoBuiltinFuncs |
A list of all -fno-builtin-* function names (e.g., memset). | |
std::map< std::string, std::string, std::greater< std::string > > | MacroPrefixMap |
A prefix map for FILE, BASE_FILE and __builtin_FILE(). | |
std::vector< llvm::Triple > | OMPTargetTriples |
Triples of the OpenMP targets that the host code codegen should take into account in order to generate accurate offloading descriptors. | |
std::string | OMPHostIRFile |
Name of the IR file that contains the result of the OpenMP target host code generation. | |
std::string | CUID |
The user provided compilation unit ID, if non-empty. | |
std::optional< TargetCXXABI::Kind > | CXXABI |
C++ ABI to compile with, if specified by the frontend through -fc++-abi=. | |
bool | IsHeaderFile = false |
Indicates whether the front-end is explicitly told that the input is a header file (i.e. | |
GPUDefaultStreamKind | GPUDefaultStream |
The default stream kind used for HIP kernel launching. | |
unsigned | OverflowPatternExclusionMask = 0 |
Which overflow patterns should be excluded from sanitizer instrumentation. | |
std::vector< std::string > | OverflowPatternExclusionValues |
std::string | RandstructSeed |
The seed used by the randomize structure layout feature. | |
bool | UseTargetPathSeparator = false |
Indicates whether to use target's platform-specific file separator when FILE macro is used and when concatenating filename with directory or to use build environment environment's platform-specific file separator. | |
bool | CheckNew = false |
std::string | OpenACCMacroOverride |
bool | NoWasmOpt = false |
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that is accepted.
Definition at line 499 of file LangOptions.h.
LangOptions::LangOptions | ( | ) |
---|
◆ allowsNonTrivialObjCLifetimeQualifiers()
bool clang::LangOptions::allowsNonTrivialObjCLifetimeQualifiers ( ) const | inline |
---|
◆ assumeFunctionsAreConvergent()
bool clang::LangOptions::assumeFunctionsAreConvergent ( ) const | inline |
---|
◆ getDefaultExceptionMode()
◆ getDefaultRoundingMode()
RoundingMode clang::LangOptions::getDefaultRoundingMode ( ) const | inline |
---|
◆ getOpenCLCompatibleVersion()
unsigned LangOptions::getOpenCLCompatibleVersion | ( | ) | const |
---|
Return the OpenCL version that kernel language is compatible with.
Definition at line 63 of file LangOptions.cpp.
Referenced by clang::Sema::ActOnNumericConstant(), clang::TargetInfo::adjust(), clang::OpenCLOptions::areProgramScopeVariablesSupported(), builtinIsSupported(), CheckExtVectorComponent(), ConvertDeclSpecToType(), clang::Sema::CreateBuiltinUnaryOp(), FixupInvocation(), GetFullTypeForDeclarator(), getOpenCLKernelParameterType(), clang::SemaOpenCL::handleAccessAttr(), clang::Sema::Initialize(), clang::OpenCLOptions::OpenCLOptionInfo::isAvailableIn(), clang::CodeGen::CodeGenModule::Release(), setLangDefaults(), clang::DeclSpec::SetStorageClassSpec(), and clang::TargetInfo::validateOpenCLTarget().
◆ getOpenCLVersionString()
std::string LangOptions::getOpenCLVersionString | ( | ) | const |
---|
◆ getOpenCLVersionTuple()
VersionTuple LangOptions::getOpenCLVersionTuple | ( | ) | const |
---|
◆ hasAtExit()
bool clang::LangOptions::hasAtExit ( ) const | inline |
---|
Returns true if the language supports calling the 'atexit' function.
Definition at line 732 of file LangOptions.h.
◆ hasDefaultGlobalAllocationFunctionVisibility()
bool clang::LangOptions::hasDefaultGlobalAllocationFunctionVisibility ( ) const | inline |
---|
◆ hasDefaultVisibilityExportMapping()
bool clang::LangOptions::hasDefaultVisibilityExportMapping ( ) const | inline |
---|
◆ hasDWARFExceptions()
bool clang::LangOptions::hasDWARFExceptions ( ) const | inline |
---|
◆ hasGlobalAllocationFunctionVisibility()
bool clang::LangOptions::hasGlobalAllocationFunctionVisibility ( ) const | inline |
---|
◆ hasHiddenGlobalAllocationFunctionVisibility()
bool clang::LangOptions::hasHiddenGlobalAllocationFunctionVisibility ( ) const | inline |
---|
◆ hasProtectedGlobalAllocationFunctionVisibility()
bool clang::LangOptions::hasProtectedGlobalAllocationFunctionVisibility ( ) const | inline |
---|
◆ hasSEHExceptions()
bool clang::LangOptions::hasSEHExceptions ( ) const | inline |
---|
◆ hasSignReturnAddress()
bool clang::LangOptions::hasSignReturnAddress ( ) const | inline |
---|
◆ hasSjLjExceptions()
bool clang::LangOptions::hasSjLjExceptions ( ) const | inline |
---|
◆ hasWasmExceptions()
bool clang::LangOptions::hasWasmExceptions ( ) const | inline |
---|
◆ implicitFunctionsAllowed()
bool clang::LangOptions::implicitFunctionsAllowed ( ) const | inline |
---|
◆ isAllDefaultVisibilityExportMapping()
bool clang::LangOptions::isAllDefaultVisibilityExportMapping ( ) const | inline |
---|
◆ isCompatibleWithMSVC()
◆ isCompilingModule()
bool clang::LangOptions::isCompilingModule ( ) const | inline |
---|
◆ isCompilingModuleImplementation()
bool clang::LangOptions::isCompilingModuleImplementation ( ) const | inline |
---|
◆ isExplicitDefaultVisibilityExportMapping()
bool clang::LangOptions::isExplicitDefaultVisibilityExportMapping ( ) const | inline |
---|
◆ isImplicitIntAllowed()
bool clang::LangOptions::isImplicitIntAllowed ( ) const | inline |
---|
◆ isImplicitIntRequired()
bool clang::LangOptions::isImplicitIntRequired ( ) const | inline |
---|
◆ isNoBuiltinFunc()
bool LangOptions::isNoBuiltinFunc | ( | StringRef | Name | ) | const |
---|
◆ isOverflowPatternExcluded()
◆ isSignedOverflowDefined()
bool clang::LangOptions::isSignedOverflowDefined ( ) const | inline |
---|
◆ isSignReturnAddressScopeAll()
bool clang::LangOptions::isSignReturnAddressScopeAll ( ) const | inline |
---|
◆ isSignReturnAddressWithAKey()
bool clang::LangOptions::isSignReturnAddressWithAKey ( ) const | inline |
---|
◆ isSubscriptPointerArithmetic()
bool clang::LangOptions::isSubscriptPointerArithmetic ( ) const | inline |
---|
◆ isSYCL()
bool clang::LangOptions::isSYCL ( ) const | inline |
---|
◆ remapPathPrefix()
◆ requiresStrictPrototypes()
bool clang::LangOptions::requiresStrictPrototypes ( ) const | inline |
---|
◆ resetNonModularOptions()
void LangOptions::resetNonModularOptions | ( | ) |
---|
◆ setLangDefaults()
Set language defaults for the given input language and language standard in the given LangOptions object.
Parameters
Opts | - The LangOptions object to set up. |
---|---|
Lang | - The input language. |
T | - The target triple. |
Includes | - If the language requires extra headers to be implicitly included, they will be appended to this list. |
LangStd | - The input language standard. |
Definition at line 89 of file LangOptions.cpp.
References clang::Asm, clang::CUDA, clang::LangOptionsBase::FPM_Fast, clang::LangOptionsBase::FPM_FastHonorPragmas, clang::LangOptionsBase::FPM_On, clang::getDefaultLanguageStandard(), clang::LangStandard::getLangStandardForKind(), getOpenCLCompatibleVersion(), clang::HIP, clang::HLSL, clang::LangOptionsBase::HLSL_2015, clang::LangOptionsBase::HLSL_2016, clang::LangOptionsBase::HLSL_2017, clang::LangOptionsBase::HLSL_2018, clang::LangOptionsBase::HLSL_2021, clang::LangOptionsBase::HLSL_202x, clang::LangOptionsBase::HLSL_202y, clang::LangStandard::lang_unspecified, LangStd, clang::ObjC, clang::ObjCXX, Std, and clang::T.
◆ threadPrivateMemoryAtomicsAreUndefined()
bool clang::LangOptions::threadPrivateMemoryAtomicsAreUndefined ( ) const | inline |
---|
◆ trackLocalOwningModule()
bool clang::LangOptions::trackLocalOwningModule ( ) const | inline |
---|
◆ CFRuntime
◆ CheckNew
◆ CommentOpts
◆ CUID
std::string clang::LangOptions::CUID
◆ CurrentModule
std::string clang::LangOptions::CurrentModule
The name of the current module, of which the main source file is a part.
If CompilingModule is set, we are compiling the interface of this module, otherwise we are compiling an implementation file of it. This starts as ModuleName in case -fmodule-name is provided and changes during compilation to reflect the current module.
Definition at line 554 of file LangOptions.h.
Referenced by clang::Sema::ActOnModuleDecl(), clang::Sema::ActOnModuleImport(), clang::FrontendAction::BeginSourceFile(), clang::ModuleMap::createHeaderUnit(), clang::ModuleMap::createModule(), clang::ModuleMap::createModuleForImplementationUnit(), clang::ModuleMap::createModuleForInterfaceUnit(), clang::DumpModuleInfoAction::ExecuteAction(), FixupInvocation(), clang::FrontendAction::getCurrentModule(), clang::PCHGenerator::getEmittingModule(), clang::Preprocessor::getModuleForLocation(), clang::Module::isForBuilding(), prepareToBuildModule(), and resetNonModularOptions().
◆ CXXABI
◆ GPUDefaultStream
◆ IsHeaderFile
bool clang::LangOptions::IsHeaderFile = false
◆ LangStd
◆ MacroPrefixMap
std::map<std::string, std::string, std::greaterstd::string > clang::LangOptions::MacroPrefixMap
◆ ModuleFeatures
std::vectorstd::string clang::LangOptions::ModuleFeatures
◆ ModuleName
std::string clang::LangOptions::ModuleName
◆ NoBuiltinFuncs
std::vectorstd::string clang::LangOptions::NoBuiltinFuncs
◆ NoSanitizeFiles
std::vectorstd::string clang::LangOptions::NoSanitizeFiles
◆ NoWasmOpt
◆ ObjCConstantStringClass
std::string clang::LangOptions::ObjCConstantStringClass
◆ ObjCRuntime
Definition at line 534 of file LangOptions.h.
Referenced by clang::Sema::ActOnLastBitfield(), checkArithmeticOnObjCPointer(), checkLanguageOptions(), CheckObjCTraitOperandConstraints(), CheckProtocolMethodDefs(), clang::CodeGen::CreateGNUObjCRuntime(), DiagnoseUnimplementedAccessor(), EncodeBitField(), clang::CodeGen::CodeGenModule::GetAddrOfRTTIDescriptor(), clang::ASTNameGenerator::Implementation::getClassSymbolPrefix(), getObjCPersonality(), getObjCXXPersonality(), hasUnwindExceptions(), clang::SemaObjC::ImplMethodsVsClassMethods(), InitializePredefinedMacros(), clang::Sema::MaybeBindToTemporary(), setARCRuntimeFunctionLinkage(), tryEmitSpecializedAllocInit(), and UseOptimizedSetter().
◆ OMPHostIRFile
std::string clang::LangOptions::OMPHostIRFile
◆ OMPTargetTriples
std::vectorllvm::Triple clang::LangOptions::OMPTargetTriples
◆ OpenACCMacroOverride
std::string clang::LangOptions::OpenACCMacroOverride
◆ OverflowHandler
std::string clang::LangOptions::OverflowHandler
The name of the handler function to be called when -ftrapv is specified.
If none is specified, abort (GCC-compatible behaviour).
Definition at line 544 of file LangOptions.h.
◆ OverflowPatternExclusionMask
unsigned clang::LangOptions::OverflowPatternExclusionMask = 0
◆ OverflowPatternExclusionValues
std::vectorstd::string clang::LangOptions::OverflowPatternExclusionValues
◆ ProfileListFiles
std::vectorstd::string clang::LangOptions::ProfileListFiles
Paths to special case list files specifying which entities (files, functions) should or should not be instrumented.
Definition at line 532 of file LangOptions.h.
◆ RandstructSeed
std::string clang::LangOptions::RandstructSeed
◆ Sanitize
Set of enabled sanitizers.
Definition at line 505 of file LangOptions.h.
Referenced by addKCFIPass(), addSanitizers(), checkLanguageOptions(), clang::CodeGen::CodeGenModule::CodeGenModule(), clang::CodeGen::CodeGenModule::CreateFunctionTypeMetadataForIcall(), clang::targets::getAppleMachODefines(), clang::CompilerInvocation::getModuleHash(), clang::CodeGen::CodeGenTBAA::getTypeInfo(), clang::RecordDecl::mayInsertExtraPadding(), clang::CodeGen::CodeGenModule::NeedAllVtablesTypeId(), clang::CodeGen::CodeGenModule::Release(), clang::CodeGen::CodeGenVTables::RemoveHwasanMetadata(), clang::CodeGen::SanitizerMetadata::reportGlobal(), and shouldEmitLifetimeMarkers().
◆ SanitizeCoverage
bool clang::LangOptions::SanitizeCoverage = false
◆ UseTargetPathSeparator
bool clang::LangOptions::UseTargetPathSeparator = false
Indicates whether to use target's platform-specific file separator when FILE macro is used and when concatenating filename with directory or to use build environment environment's platform-specific file separator.
The plaform-specific path separator is the backslash() for Windows and forward slash (/) elsewhere.
Definition at line 610 of file LangOptions.h.
Referenced by clang::Preprocessor::processPathForFileMacro().
◆ XRayAlwaysInstrumentFiles
std::vectorstd::string clang::LangOptions::XRayAlwaysInstrumentFiles
Paths to the XRay "always instrument" files specifying which objects (files, functions, variables) should be imbued with the XRay "always instrument" attribute.
WARNING: This is a deprecated field and will go away in the future.
Definition at line 517 of file LangOptions.h.
Referenced by resetNonModularOptions().
◆ XRayAttrListFiles
std::vectorstd::string clang::LangOptions::XRayAttrListFiles
Paths to the XRay attribute list files, specifying which objects (files, functions, variables) should be imbued with the appropriate XRay attribute(s).
Definition at line 528 of file LangOptions.h.
◆ XRayNeverInstrumentFiles
std::vectorstd::string clang::LangOptions::XRayNeverInstrumentFiles
Paths to the XRay "never instrument" files specifying which objects (files, functions, variables) should be imbued with the XRay "never instrument" attribute.
WARNING: This is a deprecated field and will go away in the future.
Definition at line 523 of file LangOptions.h.
Referenced by resetNonModularOptions().
The documentation for this class was generated from the following files:
- include/clang/Basic/LangOptions.h
- lib/Basic/LangOptions.cpp