clang: clang::LangOptionsBase Class Reference (original) (raw)
Bitfields of LangOptions, split out from LangOptions in order to ensure that this large collection of bitfields is a trivial class type. More...
#include "[clang/Basic/LangOptions.h](LangOptions%5F8h%5Fsource.html)"
Bitfields of LangOptions, split out from LangOptions in order to ensure that this large collection of bitfields is a trivial class type.
Definition at line 70 of file LangOptions.h.
◆ CFBranchLabelSchemeKind
◆ MSVtorDispMode
◆ RoundingMode
◆ Visibility
◆ AddrSpaceMapMangling
Enumerator |
---|
ASMM_Target |
ASMM_On |
ASMM_Off |
Definition at line 132 of file LangOptions.h.
◆ AltivecSrcCompatKind
◆ ClangABI
Clang versions with different platform ABI conformance.
Enumerator | |
---|---|
Ver3_8 | Attempt to be ABI-compatible with code generated by Clang 3.8.x (SVN r257626). This causes <1 x long long> to be passed in an integer register instead of an SSE register on x64_64. |
Ver4 | Attempt to be ABI-compatible with code generated by Clang 4.0.x (SVN r291814). This causes move operations to be ignored when determining whether a class type can be passed or returned directly. |
Ver6 | Attempt to be ABI-compatible with code generated by Clang 6.0.x (SVN r321711). This causes determination of whether a type is standard-layout to ignore collisions between empty base classes and between base classes and member subobjects, which affects whether we reuse base class tail padding in some ABIs. |
Ver7 | Attempt to be ABI-compatible with code generated by Clang 7.0.x (SVN r338536). This causes alignof (C++) and _Alignof (C11) to be compatible with __alignof (i.e., return the preferred alignment) rather than returning the required alignment. |
Ver9 | Attempt to be ABI-compatible with code generated by Clang 9.0.x (SVN r351319). This causes vectors of __int128 to be passed in memory instead of passing in multiple scalar registers on x86_64 on Linux and NetBSD. |
Ver11 | Attempt to be ABI-compatible with code generated by Clang 11.0.x (git 2e10b7a39b93). This causes clang to pass unions with a 256-bit vector member on the stack instead of using registers, to not properly mangle substitutions for template names in some cases, and to mangle declaration template arguments without a cast to the parameter type even when that can lead to mangling collisions. |
Ver12 | Attempt to be ABI-compatible with code generated by Clang 12.0.x (git 8e464dd76bef). This causes clang to mangle lambdas within global-scope inline variables incorrectly. |
Ver14 | Attempt to be ABI-compatible with code generated by Clang 14.0.x. This causes clang to: mangle dependent nested names incorrectly. make trivial only those defaulted copy constructors with a parameter-type-list equivalent to the parameter-type-list of an implicit declaration. |
Ver15 | Attempt to be ABI-compatible with code generated by Clang 15.0.x. This causes clang to: Reverse the implementation for DR692, DR1395 and DR1432. pack non-POD members of packed structs. consider classes with defaulted special member functions non-pod. |
Ver17 | Attempt to be ABI-compatible with code generated by Clang 17.0.x. This causes clang to revert some fixes to its implementation of the Itanium name mangling scheme, with the consequence that overloaded function templates are mangled the same if they differ only by: constraints whether a non-type template parameter has a deduced type the parameter list of a template template parameter |
Ver18 | Attempt to be ABI-compatible with code generated by Clang 18.0.x. This causes clang to revert some fixes to the mangling of lambdas in the initializers of members of local classes. |
Ver19 | Attempt to be ABI-compatible with code generated by Clang 19.0.x. This causes clang to: Incorrectly mangle the 'base type' substitutions of the CXX construction vtable because it hasn't added 'type' as a substitution. Skip mangling enclosing class templates of member-like friend function templates. |
Latest | Conform to the underlying platform's C and C++ ABIs as closely as we can. |
Definition at line 170 of file LangOptions.h.
◆ CompilingModuleKind
Enumerator | |
---|---|
CMK_None | Not compiling a module interface at all. |
CMK_ModuleMap | Compiling a module from a module map. |
CMK_HeaderUnit | Compiling a module header unit. |
CMK_ModuleInterface | Compiling a C++ modules interface unit. |
Definition at line 99 of file LangOptions.h.
◆ ComplexRangeKind
Controls the various implementations for complex multiplication and.
Enumerator | |
---|---|
CX_Full | Implementation of complex division and multiplication using a call to runtime library functions(generally the case, but the BE might sometimes replace the library call if it knows enough about the potential range of the inputs). Overflow and non-finite values are handled by the library implementation. This is the default value. |
CX_Improved | Implementation of complex division offering an improved handling for overflow in intermediate calculations with no special handling for NaN and infinite values. |
CX_Promoted | Implementation of complex division using algebraic formulas at higher precision. Overflow is handled. Non-finite values are handled in some cases. If the target hardware does not have native support for a higher precision data type, an implementation for the complex operation will be used to provide improved guards against intermediate overflow, but overflow and underflow may still occur in some cases. NaN and infinite values are not handled. |
CX_Basic | Implementation of complex division and multiplication using algebraic formulas at source precision. No special handling to avoid overflow. NaN and infinite values are not handled. |
CX_None | No range rule is enabled. |
Definition at line 441 of file LangOptions.h.
◆ CoreFoundationABI
Enumerator | |
---|---|
Unspecified | No interoperability ABI has been specified. |
Standalone | CoreFoundation does not have any language interoperability. |
ObjectiveC | Interoperability with the ObjectiveC runtime. |
Swift | Interoperability with the latest known version of the Swift runtime. |
Swift5_0 | Interoperability with the Swift 5.0 runtime. |
Swift4_2 | Interoperability with the Swift 4.2 runtime. |
Swift4_1 | Interoperability with the Swift 4.1 runtime. |
Definition at line 255 of file LangOptions.h.
◆ DefaultCallingConvention
Enumerator |
---|
DCC_None |
DCC_CDecl |
DCC_FastCall |
DCC_StdCall |
DCC_VectorCall |
DCC_RegCall |
DCC_RtdCall |
Definition at line 122 of file LangOptions.h.
◆ DefaultVisiblityExportMapping
Enumerator | |
---|---|
None | |
Explicit | map only explicit default visibilities to exported |
All | map all default visibilities to exported |
Definition at line 398 of file LangOptions.h.
◆ ExceptionHandlingKind
Possible exception handling behavior.
Enumerator |
---|
None |
SjLj |
WinEH |
DwarfCFI |
Wasm |
Definition at line 319 of file LangOptions.h.
◆ ExcessPrecisionKind
Enumerator |
---|
FPP_Standard |
FPP_Fast |
FPP_None |
Definition at line 316 of file LangOptions.h.
◆ ExtendArgsKind
Enumerator | |
---|---|
ExtendTo32 | Integer arguments are sign or zero extended to 32/64 bits during default argument promotions. |
ExtendTo64 |
Definition at line 367 of file LangOptions.h.
◆ FPEvalMethodKind
Possible float expression evaluation method choices.
Enumerator | |
---|---|
FEM_Indeterminable | The evaluation method cannot be determined or is inconsistent for this target. |
FEM_Source | Use the declared type for fp arithmetic. |
FEM_Double | Use the type double for fp arithmetic. |
FEM_Extended | Use extended type for fp arithmetic. |
FEM_UnsetOnCommandLine | Used only for FE option processing; this is only used to indicate that the user did not specify an explicit evaluation method on the command line and so the target should be queried for its default evaluation method instead. |
Definition at line 299 of file LangOptions.h.
◆ FPExceptionModeKind
Possible floating point exception behavior.
Enumerator | |
---|---|
FPE_Ignore | Assume that floating-point exceptions are masked. |
FPE_MayTrap | Transformations do not cause new exceptions but may hide some. |
FPE_Strict | Strictly preserve the floating-point exception semantics. |
FPE_Default | Used internally to represent initial unspecified value. |
Definition at line 287 of file LangOptions.h.
◆ FPModeKind
Enumerator |
---|
FPM_Off |
FPM_On |
FPM_Fast |
FPM_FastHonorPragmas |
Definition at line 272 of file LangOptions.h.
◆ GCMode
Enumerator |
---|
NonGC |
GCOnly |
HybridGC |
Definition at line 79 of file LangOptions.h.
◆ GPUDefaultStreamKind
Enumerator | |
---|---|
Legacy | Legacy default stream. |
PerThread | Per-thread default stream. |
Definition at line 374 of file LangOptions.h.
◆ HLSLLangStd
Enumerator |
---|
HLSL_Unset |
HLSL_2015 |
HLSL_2016 |
HLSL_2017 |
HLSL_2018 |
HLSL_2021 |
HLSL_202x |
HLSL_202y |
Definition at line 158 of file LangOptions.h.
◆ LaxVectorConversionKind
Enumerator | |
---|---|
None | Permit no implicit vector bitcasts. |
Integer | Permit vector bitcasts between integer vectors with different numbers of elements but the same total bit-width. |
All | Permit vector bitcasts between all vectors with the same total bit-width. |
Definition at line 321 of file LangOptions.h.
◆ MSVCMajorVersion
Enumerator |
---|
MSVC2010 |
MSVC2012 |
MSVC2013 |
MSVC2015 |
MSVC2017 |
MSVC2017_5 |
MSVC2017_7 |
MSVC2019 |
MSVC2019_5 |
MSVC2019_8 |
MSVC2022_3 |
Definition at line 135 of file LangOptions.h.
◆ OverflowPatternExclusionKind
Exclude certain code patterns from being instrumented by arithmetic overflow sanitizers.
Enumerator | |
---|---|
None | Don't exclude any overflow patterns from sanitizers. |
All | Exclude all overflow patterns (below) |
AddSignedOverflowTest | if (a + b < a) |
AddUnsignedOverflowTest | if (a + b < a) |
NegUnsignedConst | -1UL |
PostDecrInWhile | while (count–) |
Definition at line 383 of file LangOptions.h.
◆ PragmaMSPointersToMembersKind
Enumerator |
---|
PPTMK_BestCase |
PPTMK_FullGeneralitySingleInheritance |
PPTMK_FullGeneralityMultipleInheritance |
PPTMK_FullGeneralityVirtualInheritance |
Definition at line 113 of file LangOptions.h.
◆ RegisterStaticDestructorsKind
Controls which variables have static destructors registered.
Enumerator | |
---|---|
All | Register static destructors for all variables. |
ThreadLocal | Register static destructors only for thread-local variables. |
None | Don't register static destructors for any variables. |
Definition at line 473 of file LangOptions.h.
◆ SignedOverflowBehaviorTy
Enumerator |
---|
SOB_Undefined |
SOB_Defined |
SOB_Trapping |
Definition at line 87 of file LangOptions.h.
◆ SignReturnAddressKeyKind
Enumerator | |
---|---|
AKey | Return address signing uses APIA key. |
BKey | Return address signing uses APIB key. |
Definition at line 353 of file LangOptions.h.
◆ SignReturnAddressScopeKind
Enumerator | |
---|---|
None | No signing for any function. |
NonLeaf | Sign the return address of functions that spill LR. |
All | Sign the return address of all functions,. |
Definition at line 344 of file LangOptions.h.
◆ StackProtectorMode
Enumerator |
---|
SSPOff |
SSPOn |
SSPStrong |
SSPReq |
Definition at line 80 of file LangOptions.h.
◆ StrictFlexArraysLevelKind
Enumerator | |
---|---|
Default | Any trailing array member is a FAM. |
OneZeroOrIncomplete | Any trailing array member of undefined, 0, or 1 size is a FAM. |
ZeroOrIncomplete | Any trailing array member of undefined or 0 size is a FAM. |
IncompleteOnly | Any trailing array member of undefined size is a FAM. |
Definition at line 428 of file LangOptions.h.
◆ SYCLMajorVersion
Enumerator |
---|
SYCL_None |
SYCL_2017 |
SYCL_2020 |
SYCL_Default |
Definition at line 149 of file LangOptions.h.
◆ ThreadModelKind
Enumerator | |
---|---|
POSIX | POSIX Threads. |
Single | Single Threaded Environment. |
Definition at line 360 of file LangOptions.h.
◆ TrivialAutoVarInitKind
Enumerator |
---|
Uninitialized |
Zero |
Pattern |
Definition at line 85 of file LangOptions.h.
◆ VisibilityForcedKinds
Enumerator | |
---|---|
ForceHidden | Force hidden visibility. |
ForceProtected | Force protected visibility. |
ForceDefault | Force default visibility. |
Source | Don't alter the visibility. |
Definition at line 406 of file LangOptions.h.
◆ VisibilityFromDLLStorageClassKinds
Enumerator | |
---|---|
Keep | Keep the IR-gen assigned visibility. |
Default | Override the IR-gen assigned visibility with default visibility. |
Hidden | Override the IR-gen assigned visibility with hidden visibility. |
Protected | Override the IR-gen assigned visibility with protected visibility. |
Definition at line 417 of file LangOptions.h.
◆ CompilerInvocation
◆ CompilerInvocationBase
The documentation for this class was generated from the following file:
- include/clang/Basic/LangOptions.h