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)"

Public Types
enum class CompatibilityKind { NotCompatible, Compatible, Benign }
For ASTs produced with different option value, signifies their level of compatibility. More...
enum GCMode { NonGC, GCOnly, HybridGC }
enum StackProtectorMode { SSPOff, SSPOn, SSPStrong, SSPReq }
enum class TrivialAutoVarInitKind { Uninitialized, Zero, Pattern }
enum SignedOverflowBehaviorTy { SOB_Undefined, SOB_Defined, SOB_Trapping }
enum CompilingModuleKind { CMK_None, CMK_ModuleMap, CMK_HeaderUnit, CMK_ModuleInterface }
enum PragmaMSPointersToMembersKind { PPTMK_BestCase, PPTMK_FullGeneralitySingleInheritance, PPTMK_FullGeneralityMultipleInheritance, PPTMK_FullGeneralityVirtualInheritance }
enum DefaultCallingConvention { DCC_None, DCC_CDecl, DCC_FastCall, DCC_StdCall, DCC_VectorCall, DCC_RegCall, DCC_RtdCall }
enum AddrSpaceMapMangling { ASMM_Target, ASMM_On, ASMM_Off }
enum MSVCMajorVersion { MSVC2010 = 1600 , MSVC2012 = 1700 , MSVC2013 = 1800 , MSVC2015 = 1900 , MSVC2017 = 1910 , MSVC2017_5 = 1912 , MSVC2017_7 = 1914 , MSVC2019 = 1920 , MSVC2019_5 = 1925 , MSVC2019_8 = 1928 , MSVC2022_3 = 1933 , MSVC2022_9 = 1939 }
enum SYCLMajorVersion { SYCL_None, SYCL_2017, SYCL_2020, SYCL_Default = SYCL_2020 }
enum HLSLLangStd { HLSL_Unset = 0 , HLSL_2015 = 2015 , HLSL_2016 = 2016 , HLSL_2017 = 2017 , HLSL_2018 = 2018 , HLSL_2021 = 2021 , HLSL_202x = 2028 , HLSL_202y = 2029 }
enum class ClangABI
Clang versions with different platform ABI conformance. More...
enum class CoreFoundationABI { Unspecified, Standalone, ObjectiveC, Swift, Swift5_0, Swift4_2, Swift4_1 }
enum FPModeKind { FPM_Off, FPM_On, FPM_Fast, FPM_FastHonorPragmas }
enum FPExceptionModeKind { FPE_Ignore, FPE_MayTrap, FPE_Strict, FPE_Default }
Possible floating point exception behavior. More...
enum FPEvalMethodKind : unsigned { FEM_Source = 0 , FEM_Double = 1 , FEM_Extended = 2 , FEM_UnsetOnCommandLine = 3 }
Possible float expression evaluation method choices. More...
enum class MatrixMemoryLayout : unsigned { MatrixColMajor = 0 , MatrixRowMajor = 1 }
enum ExcessPrecisionKind { FPP_Standard, FPP_Fast, FPP_None }
enum class LaxVectorConversionKind { None, Integer, All }
enum class AltivecSrcCompatKind { Mixed, GCC, XL, Default = Mixed }
enum class SignReturnAddressScopeKind { None, NonLeaf, All }
enum class SignReturnAddressKeyKind { AKey, BKey }
enum class ThreadModelKind { POSIX, Single }
enum class ExtendArgsKind { ExtendTo32, ExtendTo64 }
enum class GPUDefaultStreamKind { Legacy, PerThread }
enum OverflowPatternExclusionKind { None = 1 << 0 , All = 1 << 1 , AddSignedOverflowTest = 1 << 2 , AddUnsignedOverflowTest = 1 << 3 , NegUnsignedConst = 1 << 4 , PostDecrInWhile = 1 << 5 }
Exclude certain code patterns from being instrumented by arithmetic overflow sanitizers. More...
enum class DefaultVisiblityExportMapping { None, Explicit, All }
enum class VisibilityForcedKinds { ForceHidden, ForceProtected, ForceDefault, Source }
enum class VisibilityFromDLLStorageClassKinds { Keep, Default, Hidden, Protected }
enum class StrictFlexArraysLevelKind { Default = 0 , OneZeroOrIncomplete = 1 , ZeroOrIncomplete = 2 , IncompleteOnly = 3 }
enum ComplexRangeKind { CX_Full, CX_Improved, CX_Promoted, CX_Basic, CX_None }
Controls the various implementations for complex multiplication and. More...
enum class RegisterStaticDestructorsKind { All, ThreadLocal, None }
Controls which variables have static destructors registered. More...
enum class LayoutCompatibilityKind { Default = 0 , Itanium = 1 , Microsoft = 2 }
using Visibility = clang::Visibility
using RoundingMode = llvm::RoundingMode
using CFBranchLabelSchemeKind = clang::CFBranchLabelSchemeKind
using MSVtorDispMode = clang::MSVtorDispMode
Friends
class CompilerInvocation
class CompilerInvocationBase

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 72 of file LangOptions.h.

CFBranchLabelSchemeKind

MSVtorDispMode

RoundingMode

using clang::LangOptionsBase::RoundingMode = llvm::RoundingMode

Visibility

AddrSpaceMapMangling

Enumerator
ASMM_Target
ASMM_On
ASMM_Off

Definition at line 150 of file LangOptions.h.

AltivecSrcCompatKind

ClangABI

Clang versions with different platform ABI conformance.

Definition at line 189 of file LangOptions.h.

CompatibilityKind

For ASTs produced with different option value, signifies their level of compatibility.

Enumerator
NotCompatible Does affect the construction of the AST in a way that does prevent module interoperability.
Compatible Does affect the construction of the AST in a way that doesn't prevent interoperability (that is, the value can be different between an explicit module and the user of that module).
Benign Does not affect the construction of the AST in any way (that is, the value can be different between an implicit module and the user of that module).

Definition at line 83 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 117 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 383 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 196 of file LangOptions.h.

DefaultCallingConvention

Enumerator
DCC_None
DCC_CDecl
DCC_FastCall
DCC_StdCall
DCC_VectorCall
DCC_RegCall
DCC_RtdCall

Definition at line 140 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 340 of file LangOptions.h.

ExcessPrecisionKind

Enumerator
FPP_Standard
FPP_Fast
FPP_None

Definition at line 261 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 309 of file LangOptions.h.

FPEvalMethodKind

Possible float expression evaluation method choices.

Enumerator
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 240 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 228 of file LangOptions.h.

FPModeKind

Enumerator
FPM_Off
FPM_On
FPM_Fast
FPM_FastHonorPragmas

Definition at line 213 of file LangOptions.h.

GCMode

Enumerator
NonGC
GCOnly
HybridGC

Definition at line 97 of file LangOptions.h.

GPUDefaultStreamKind

Enumerator
Legacy Legacy default stream.
PerThread Per-thread default stream.

Definition at line 316 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 177 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 263 of file LangOptions.h.

LayoutCompatibilityKind

Enumerator
Default Use default layout rules of the target.
Itanium Use Itanium rules for bit-field layout and fundamental types alignment.
Microsoft Use Microsoft C++ ABI rules for bit-field layout and fundamental types alignment.

Definition at line 424 of file LangOptions.h.

MatrixMemoryLayout

Enumerator
MatrixColMajor
MatrixRowMajor

Definition at line 254 of file LangOptions.h.

MSVCMajorVersion

Enumerator
MSVC2010
MSVC2012
MSVC2013
MSVC2015
MSVC2017
MSVC2017_5
MSVC2017_7
MSVC2019
MSVC2019_5
MSVC2019_8
MSVC2022_3
MSVC2022_9

Definition at line 153 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 325 of file LangOptions.h.

PragmaMSPointersToMembersKind

Enumerator
PPTMK_BestCase
PPTMK_FullGeneralitySingleInheritance
PPTMK_FullGeneralityMultipleInheritance
PPTMK_FullGeneralityVirtualInheritance

Definition at line 131 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 415 of file LangOptions.h.

SignedOverflowBehaviorTy

Enumerator
SOB_Undefined
SOB_Defined
SOB_Trapping

Definition at line 105 of file LangOptions.h.

SignReturnAddressKeyKind

Enumerator
AKey Return address signing uses APIA key.
BKey Return address signing uses APIB key.

Definition at line 295 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 286 of file LangOptions.h.

StackProtectorMode

Enumerator
SSPOff
SSPOn
SSPStrong
SSPReq

Definition at line 98 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 370 of file LangOptions.h.

SYCLMajorVersion

Enumerator
SYCL_None
SYCL_2017
SYCL_2020
SYCL_Default

Definition at line 168 of file LangOptions.h.

ThreadModelKind

Enumerator
POSIX POSIX Threads.
Single Single Threaded Environment.

Definition at line 302 of file LangOptions.h.

TrivialAutoVarInitKind

Enumerator
Uninitialized
Zero
Pattern

Definition at line 103 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 348 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 359 of file LangOptions.h.

CompilerInvocation

CompilerInvocationBase


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