clang: include/clang/Basic/LangOptions.h File Reference (original) (raw)

Defines the clang::LangOptions interface. More...

#include "[clang/Basic/CFProtectionOptions.h](CFProtectionOptions%5F8h%5Fsource.html)"
#include "[clang/Basic/CommentOptions.h](CommentOptions%5F8h%5Fsource.html)"
#include "[clang/Basic/LLVM.h](LLVM%5F8h%5Fsource.html)"
#include "[clang/Basic/LangStandard.h](LangStandard%5F8h%5Fsource.html)"
#include "[clang/Basic/ObjCRuntime.h](ObjCRuntime%5F8h%5Fsource.html)"
#include "[clang/Basic/Sanitizers.h](Sanitizers%5F8h%5Fsource.html)"
#include "[clang/Basic/TargetCXXABI.h](TargetCXXABI%5F8h%5Fsource.html)"
#include "[clang/Basic/Visibility.h](Visibility%5F8h%5Fsource.html)"
#include "llvm/ADT/FloatingPointMode.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/TargetParser/Triple.h"
#include <optional>
#include <string>
#include <vector>
#include "clang/Basic/LangOptions.def"
#include "clang/Basic/FPOptions.def"

Go to the source code of this file.

Classes
class clang::LangOptionsBase
Bitfields of LangOptions, split out from LangOptions in order to ensure that this large collection of bitfields is a trivial class type. More...
class clang::LangOptions
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that is accepted. More...
class clang::FPOptions
class clang::FPOptionsOverride
Represents difference between two FPOptions values. More...
Namespaces
namespace clang
The JSON file list parser is used to communicate input to InstallAPI.
Macros
#define LANGOPT(Name, Bits, Default, Description) unsigned Name : Bits;
#define ENUM_LANGOPT(Name, Type, Bits, Default, Description)
#define LANGOPT(Name, Bits, Default, Description)
#define ENUM_LANGOPT(Name, Type, Bits, Default, Description)
#define LANGOPT(Name, Bits, Default, Description)
#define ENUM_LANGOPT(Name, Type, Bits, Default, Description)
#define OPTION(NAME, TYPE, WIDTH, PREVIOUS)
#define OPTION(NAME, TYPE, WIDTH, PREVIOUS) +WIDTH
#define OPTION(NAME, TYPE, WIDTH, PREVIOUS)
#define OPTION(NAME, TYPE, WIDTH, PREVIOUS)
Enumerations
enum class clang::MSVtorDispMode { clang::Never, clang::ForVBaseOverride, clang::ForVFTable }
In the Microsoft ABI, this controls the placement of virtual displacement members used to implement virtual inheritance. More...
enum class clang::ShaderStage { clang::Pixel = 0 , clang::Vertex, clang::Geometry, clang::Hull, clang::Domain, clang::Compute, clang::Library, clang::RayGeneration, clang::Intersection, clang::AnyHit, clang::ClosestHit, clang::Miss, clang::Callable, clang::Mesh, clang::Amplification, clang::Invalid }
Shader programs run in specific pipeline stages. More...
enum class clang::PointerAuthenticationMode : unsigned { clang::None, clang::Strip, clang::SignAndStrip, clang::SignAndAuth }
enum clang::TranslationUnitKind { clang::TU_Complete, clang::TU_Prefix, clang::TU_ClangModule, clang::TU_Incremental }
Describes the kind of translation unit being processed. More...

Defines the clang::LangOptions interface.

Definition in file LangOptions.h.

ENUM_LANGOPT [1/3]

| #define ENUM_LANGOPT | ( | | Name, | | ------------------------------------------------------------------------ | - | | ----- | | | Type, | | | | | | Bits, | | | | | | Default, | | | | | | Description | | | | | ) | | | |

ENUM_LANGOPT [2/3]

| #define ENUM_LANGOPT | ( | | Name, | | ------------------------------------------------------------------------ | - | | ----- | | | Type, | | | | | | Bits, | | | | | | Default, | | | | | | Description | | | | | ) | | | |

Value:

LLVM_PREFERRED_TYPE(Type) \

unsigned Name : Bits;

Definition at line 643 of file LangOptions.h.

ENUM_LANGOPT [3/3]

| #define ENUM_LANGOPT | ( | | Name, | | ------------------------------------------------------------------------ | - | | ----- | | | Type, | | | | | | Bits, | | | | | | Default, | | | | | | Description | | | | | ) | | | |

LANGOPT [1/3]

| #define LANGOPT | ( | | Name, | | --------------- | ------------------------------------------- | | ----- | | | Bits, | | | | | | Default, | | | | | | Description | | | | | ) | unsigned Name : Bits; | | |

LANGOPT [2/3]

| #define LANGOPT | ( | | Name, | | --------------- | - | | ----- | | | Bits, | | | | | | Default, | | | | | | Description | | | | | ) | | | |

LANGOPT [3/3]

| #define LANGOPT | ( | | Name, | | --------------- | - | | ----- | | | Bits, | | | | | | Default, | | | | | | Description | | | | | ) | | | |

OPTION [1/4]

| #define OPTION | ( | | NAME, | | -------------------------------------------------------------- | - | | ----- | | | TYPE, | | | | | | WIDTH, | | | | | | PREVIOUS | | | | | ) | | | |

Value:

static constexpr storage_type NAME##Shift = \

PREVIOUS##Shift + PREVIOUS##Width; \

static constexpr storage_type NAME##Width = WIDTH; \

static constexpr storage_type NAME##Mask = ((1 << NAME##Width) - 1) \

<< NAME##Shift;

Definition at line 1064 of file LangOptions.h.

OPTION [2/4]

| #define OPTION | ( | | NAME, | | -------------------------------------------------------------- | ------ | | ----- | | | TYPE, | | | | | | WIDTH, | | | | | | PREVIOUS | | | | | ) | +WIDTH | | |

OPTION [3/4]

| #define OPTION | ( | | NAME, | | -------------------------------------------------------------- | - | | ----- | | | TYPE, | | | | | | WIDTH, | | | | | | PREVIOUS | | | | | ) | | | |

Value:

TYPE get##NAME() const { \

return static_cast<TYPE>((Value & NAME##Mask) >> NAME##Shift); \

} \

void set##NAME(TYPE value) { \

Value = (Value & ~NAME##Mask) | (storage_type(value) << NAME##Shift); \

}

#define TYPE(DERIVED, BASE)

Definition at line 1064 of file LangOptions.h.

OPTION [4/4]

| #define OPTION | ( | | NAME, | | -------------------------------------------------------------- | - | | ----- | | | TYPE, | | | | | | WIDTH, | | | | | | PREVIOUS | | | | | ) | | | |

Value:

bool has##NAME##Override() const { \

return OverrideMask & FPOptions::NAME##Mask; \

} \

TYPE get##NAME##Override() const { \

assert(has##NAME##Override()); \

return Options.get##NAME(); \

} \

void clear##NAME##Override() { \

\

Options.set##NAME(TYPE(0)); \

OverrideMask &= ~FPOptions::NAME##Mask; \

} \

void set##NAME##Override(TYPE value) { \

Options.set##NAME(value); \

OverrideMask |= FPOptions::NAME##Mask; \

}

Definition at line 1064 of file LangOptions.h.