clang: lib/Frontend/InitPreprocessor.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define OPENCL_GENERIC_EXTENSION(Ext, ...) defineOpenCLExtMacro(#Ext, __VA_ARGS__);
#define TOSTR2(X) #X
#define TOSTR(X) TOSTR2(X)
#define DEFINE_LOCK_FREE_MACRO(TYPE, Type)
#define TARGET_OS(Name, Predicate) Builder.defineMacro(#Name, (Predicate) ? "1" : "0");
Functions
static bool MacroBodyEndsInBackslash (StringRef MacroBody)
static void DefineBuiltinMacro (MacroBuilder &Builder, StringRef Macro, DiagnosticsEngine &Diags)
static void AddImplicitInclude (MacroBuilder &Builder, StringRef File)
AddImplicitInclude - Add an implicit #include of the specified file to the predefines buffer.
static void AddImplicitIncludeMacros (MacroBuilder &Builder, StringRef File)
static void AddImplicitIncludePCH (MacroBuilder &Builder, Preprocessor &PP, const PCHContainerReader &PCHContainerRdr, StringRef ImplicitIncludePCH)
Add an implicit #include using the original file used to generate a PCH file.
template
static T PickFP (const llvm::fltSemantics *Sem, T IEEEHalfVal, T IEEESingleVal, T IEEEDoubleVal, T X87DoubleExtendedVal, T PPCDoubleDoubleVal, T IEEEQuadVal)
PickFP - This is used to pick a value based on the FP semantics of the specified FP model.
static void DefineFloatMacros (MacroBuilder &Builder, StringRef Prefix, const llvm::fltSemantics *Sem, StringRef Ext)
static void DefineTypeSize (const Twine &MacroName, unsigned TypeWidth, StringRef ValSuffix, bool isSigned, MacroBuilder &Builder)
DefineTypeSize - Emit a macro to the predefines buffer that declares a macro named MacroName with the max value for a type with width 'TypeWidth' a signedness of 'isSigned' and with a value suffix of 'ValSuffix' (e.g.
static void DefineTypeSize (const Twine &MacroName, TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder)
DefineTypeSize - An overloaded helper that uses TargetInfo to determine the width, suffix, and signedness of the given type.
static void DefineFmt (const LangOptions &LangOpts, const Twine &Prefix, TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder)
static void DefineType (const Twine &MacroName, TargetInfo::IntType Ty, MacroBuilder &Builder)
static void DefineTypeWidth (const Twine &MacroName, TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder)
static void DefineTypeSizeof (StringRef MacroName, unsigned BitWidth, const TargetInfo &TI, MacroBuilder &Builder)
static void DefineTypeSizeAndWidth (const Twine &Prefix, TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder)
static void DefineExactWidthIntType (const LangOptions &LangOpts, TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder)
static void DefineExactWidthIntTypeSize (TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder)
static void DefineLeastWidthIntType (const LangOptions &LangOpts, unsigned TypeWidth, bool IsSigned, const TargetInfo &TI, MacroBuilder &Builder)
static void DefineFastIntType (const LangOptions &LangOpts, unsigned TypeWidth, bool IsSigned, const TargetInfo &TI, MacroBuilder &Builder)
static const char * getLockFreeValue (unsigned TypeWidth, const TargetInfo &TI)
Get the value the ATOMIC_*_LOCK_FREE macro should have for a type with the specified properties.
static void AddObjCXXARCLibstdcxxDefines (const LangOptions &LangOpts, MacroBuilder &Builder)
Add definitions required for a smooth interaction between Objective-C++ automated reference counting and libstdc++ (4.2).
static void InitializeStandardPredefinedMacros (const TargetInfo &TI, const LangOptions &LangOpts, const FrontendOptions &FEOpts, MacroBuilder &Builder)
static void InitializeCPlusPlusFeatureTestMacros (const LangOptions &LangOpts, MacroBuilder &Builder)
Initialize the predefined C++ language feature test macros defined in ISO/IEC JTC1/SC22/WG21 (C++) SD-6: "SG10 Feature Test Recommendations".
void InitializeOpenCLFeatureTestMacros (const TargetInfo &TI, const LangOptions &Opts, MacroBuilder &Builder)
InitializeOpenCLFeatureTestMacros - Define OpenCL macros based on target settings and language version.
llvm::SmallString< 32 > ConstructFixedPointLiteral (llvm::APFixedPoint Val, llvm::StringRef Suffix)
void DefineFixedPointMacros (const TargetInfo &TI, MacroBuilder &Builder, llvm::StringRef TypeName, llvm::StringRef Suffix, unsigned Width, unsigned Scale, bool Signed)
static void InitializePredefinedMacros (const TargetInfo &TI, const LangOptions &LangOpts, const FrontendOptions &FEOpts, const PreprocessorOptions &PPOpts, MacroBuilder &Builder)
static void InitializePGOProfileMacros (const CodeGenOptions &CodeGenOpts, MacroBuilder &Builder)

DEFINE_LOCK_FREE_MACRO

| #define DEFINE_LOCK_FREE_MACRO | ( | | TYPE, | | ----------------------------------------------------------------------- | - | | ----------------------------------------------------------- | | | Type | | | | | ) | | | |

Value:

Builder.defineMacro(Prefix + #TYPE "_LOCK_FREE", \

#define TYPE(DERIVED, BASE)

static const char * getLockFreeValue(unsigned TypeWidth, const TargetInfo &TI)

Get the value the ATOMIC_*_LOCK_FREE macro should have for a type with the specified properties.

The base class of the type hierarchy.

OPENCL_GENERIC_EXTENSION

| #define OPENCL_GENERIC_EXTENSION | ( | | Ext, | | ---------------------------------- | --------------------------------------------- | | ---- | | | ... | | | | | ) | defineOpenCLExtMacro(#Ext, __VA_ARGS__); | | |

TARGET_OS

| #define TARGET_OS | ( | | Name, | | ------------------ | ---------------------------------------------------- | | ----- | | | Predicate | | | | | ) | Builder.defineMacro(#Name, (Predicate) ? "1" : "0"); | | |

TOSTR

TOSTR2

AddImplicitInclude()

static void AddImplicitInclude ( MacroBuilder & Builder, StringRef File ) static

AddImplicitIncludeMacros()

static void AddImplicitIncludeMacros ( MacroBuilder & Builder, StringRef File ) static

AddImplicitIncludePCH()

AddObjCXXARCLibstdcxxDefines()

ConstructFixedPointLiteral()

llvm::SmallString< 32 > ConstructFixedPointLiteral ( llvm::APFixedPoint Val,
llvm::StringRef Suffix
)

DefineBuiltinMacro()

DefineExactWidthIntType()

DefineExactWidthIntTypeSize()

static void DefineExactWidthIntTypeSize ( TargetInfo::IntType Ty, const TargetInfo & TI, MacroBuilder & Builder ) static

DefineFastIntType()

DefineFixedPointMacros()

DefineFloatMacros()

static void DefineFloatMacros ( MacroBuilder & Builder, StringRef Prefix, const llvm::fltSemantics * Sem, StringRef Ext ) static

DefineFmt()

DefineLeastWidthIntType()

DefineType()

static void DefineType ( const Twine & MacroName, TargetInfo::IntType Ty, MacroBuilder & Builder ) static

DefineTypeSize() [1/2]

static void DefineTypeSize ( const Twine & MacroName, TargetInfo::IntType Ty, const TargetInfo & TI, MacroBuilder & Builder ) static

DefineTypeSize() [2/2]

static void DefineTypeSize ( const Twine & MacroName, unsigned TypeWidth, StringRef ValSuffix, bool isSigned, MacroBuilder & Builder ) static

DefineTypeSizeAndWidth()

static void DefineTypeSizeAndWidth ( const Twine & Prefix, TargetInfo::IntType Ty, const TargetInfo & TI, MacroBuilder & Builder ) static

DefineTypeSizeof()

DefineTypeWidth()

static void DefineTypeWidth ( const Twine & MacroName, TargetInfo::IntType Ty, const TargetInfo & TI, MacroBuilder & Builder ) static

getLockFreeValue()

InitializeCPlusPlusFeatureTestMacros()

InitializeOpenCLFeatureTestMacros()

InitializePGOProfileMacros()

InitializePredefinedMacros()

Definition at line 852 of file InitPreprocessor.cpp.

References clang::AtomicScopeOpenCLModel::AllSVMDevices, Bool, DEFINE_LOCK_FREE_MACRO, DefineExactWidthIntType(), DefineExactWidthIntTypeSize(), DefineFastIntType(), DefineFixedPointMacros(), DefineFloatMacros(), DefineFmt(), DefineLeastWidthIntType(), clang::PreprocessorOptions::DefineTargetOSMacros, DefineType(), DefineTypeSize(), DefineTypeSizeAndWidth(), DefineTypeSizeof(), clang::AtomicScopeOpenCLModel::Device, clang::TargetInfo::getAccumIBits(), clang::TargetInfo::getAccumScale(), clang::TargetInfo::getAccumWidth(), clang::TargetInfo::getChar16Type(), clang::TargetInfo::getChar32Type(), clang::TargetInfo::getCharWidth(), clang::getClangFullCPPVersion(), clang::getClangFullRepositoryVersion(), clang::TargetInfo::getDoubleFormat(), clang::TargetInfo::getDoubleWidth(), clang::TargetInfo::getFloatFormat(), clang::TargetInfo::getFloatWidth(), clang::TargetInfo::getFractScale(), clang::TargetInfo::getFractWidth(), clang::TargetInfo::getHalfFormat(), clang::TargetInfo::getIntMaxType(), clang::TargetInfo::getIntPtrType(), clang::TargetInfo::getIntWidth(), clang::ObjCRuntime::getKind(), getLockFreeValue(), clang::TargetInfo::getLongAccumIBits(), clang::TargetInfo::getLongAccumScale(), clang::TargetInfo::getLongAccumWidth(), clang::TargetInfo::getLongDoubleFormat(), clang::TargetInfo::getLongDoubleWidth(), clang::TargetInfo::getLongFractScale(), clang::TargetInfo::getLongFractWidth(), clang::TargetInfo::getLongLongWidth(), clang::TargetInfo::getLongWidth(), clang::TargetInfo::getMaxBitIntWidth(), clang::TargetInfo::getPointerWidth(), clang::TargetInfo::getPtrDiffType(), clang::TargetInfo::getShortAccumIBits(), clang::TargetInfo::getShortAccumScale(), clang::TargetInfo::getShortAccumWidth(), clang::TargetInfo::getShortFractScale(), clang::TargetInfo::getShortFractWidth(), clang::TargetInfo::getShortWidth(), clang::TargetInfo::getSigAtomicType(), clang::TargetInfo::getSizeType(), clang::TargetInfo::getSuitableAlign(), clang::TargetInfo::getTargetDefines(), clang::TargetInfo::getTriple(), clang::TargetInfo::getTypeConstantSuffix(), clang::TargetInfo::getTypeWidth(), clang::TargetInfo::getUIntMaxType(), clang::TargetInfo::getUIntPtrType(), clang::TargetInfo::getUnsignedAccumIBits(), clang::TargetInfo::getUnsignedAccumScale(), clang::TargetInfo::getUnsignedFractScale(), clang::TargetInfo::getUnsignedLongAccumIBits(), clang::TargetInfo::getUnsignedLongAccumScale(), clang::TargetInfo::getUnsignedLongFractScale(), clang::TargetInfo::getUnsignedShortAccumIBits(), clang::TargetInfo::getUnsignedShortAccumScale(), clang::TargetInfo::getUnsignedShortFractScale(), clang::TargetInfo::getUserLabelPrefix(), clang::ObjCRuntime::getVersion(), clang::TargetInfo::getWCharType(), clang::TargetInfo::getWIntType(), clang::ObjCRuntime::GNUstep, clang::TargetInfo::hardwareInterferenceSizes(), clang::LangOptions::hasDWARFExceptions(), clang::TargetInfo::hasFloat16Type(), clang::TargetInfo::hasInt128Type(), clang::LangOptions::hasSEHExceptions(), clang::LangOptions::hasSjLjExceptions(), clang::LangOptions::hasWasmExceptions(), InitializeCPlusPlusFeatureTestMacros(), InitializeOpenCLFeatureTestMacros(), clang::TargetInfo::isBigEndian(), clang::ObjCRuntime::isNeXTFamily(), clang::ObjCRuntime::isNonFragile(), clang::TargetInfo::isTypeSigned(), clang::Long, clang::LongLong, clang::LangOptions::ObjCRuntime, clang::ObjCRuntime::ObjFW, clang::FrontendOptions::ProgramAction, clang::frontend::RewriteObjC, clang::PreprocessorOptions::SetUpStaticAnalyzer, clang::Short, clang::AtomicScopeOpenCLModel::SubGroup, TOSTR, clang::TransferrableTargetInfo::UnsignedChar, clang::TargetInfo::useSignedCharForObjCBool(), and clang::AtomicScopeOpenCLModel::WorkGroup.

Referenced by clang::InitializePreprocessor().

InitializeStandardPredefinedMacros()

MacroBodyEndsInBackslash()

static bool MacroBodyEndsInBackslash ( StringRef MacroBody) static

PickFP()

template

static T PickFP ( const llvm::fltSemantics * Sem, T IEEEHalfVal, T IEEESingleVal, T IEEEDoubleVal, T X87DoubleExtendedVal, T PPCDoubleDoubleVal, T IEEEQuadVal ) static