clang API Documentation
#include "clang/Basic/Version.h"#include "clang/Frontend/Utils.h"#include "clang/Basic/MacroBuilder.h"#include "clang/Basic/TargetInfo.h"#include "clang/Frontend/FrontendDiagnostic.h"#include "clang/Frontend/FrontendOptions.h"#include "clang/Frontend/PreprocessorOptions.h"#include "clang/Lex/HeaderSearch.h"#include "clang/Lex/Preprocessor.h"#include "clang/Basic/FileManager.h"#include "clang/Basic/SourceManager.h"#include "llvm/ADT/APFloat.h"#include "llvm/Support/FileSystem.h"#include "llvm/Support/MemoryBuffer.h"#include "llvm/Support/Path.h"
Go to the source code of this file.
Defines | |
| #define | TOSTR2(X) #X |
| #define | TOSTR(X) TOSTR2(X) |
Functions | |
| static void | DefineBuiltinMacro (MacroBuilder &Builder, StringRef Macro, DiagnosticsEngine &Diags) |
| static void | AddImplicitInclude (MacroBuilder &Builder, StringRef File, FileManager &FileMgr) |
| static void | AddImplicitIncludeMacros (MacroBuilder &Builder, StringRef File, FileManager &FileMgr) |
| static void | AddImplicitIncludePTH (MacroBuilder &Builder, Preprocessor &PP, StringRef ImplicitIncludePTH) |
| template<typename T > | |
| static T | PickFP (const llvm::fltSemantics *Sem, T IEEESingleVal, T IEEEDoubleVal, T X87DoubleExtendedVal, T PPCDoubleDoubleVal, T IEEEQuadVal) |
| static void | DefineFloatMacros (MacroBuilder &Builder, StringRef Prefix, const llvm::fltSemantics *Sem) |
| static void | DefineTypeSize (StringRef MacroName, unsigned TypeWidth, StringRef ValSuffix, bool isSigned, MacroBuilder &Builder) |
| static void | DefineTypeSize (StringRef MacroName, TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder) |
| static void | DefineType (const Twine &MacroName, TargetInfo::IntType Ty, MacroBuilder &Builder) |
| static void | DefineTypeWidth (StringRef MacroName, TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder) |
| static void | DefineTypeSizeof (StringRef MacroName, unsigned BitWidth, const TargetInfo &TI, MacroBuilder &Builder) |
| static void | DefineExactWidthIntType (TargetInfo::IntType Ty, const TargetInfo &TI, MacroBuilder &Builder) |
| 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 | InitializePredefinedMacros (const TargetInfo &TI, const LangOptions &LangOpts, const FrontendOptions &FEOpts, MacroBuilder &Builder) |
| static void | InitializeFileRemapping (DiagnosticsEngine &Diags, SourceManager &SourceMgr, FileManager &FileMgr, const PreprocessorOptions &InitOpts) |
| #define TOSTR | ( | X | ) | TOSTR2(X) |
Referenced by InitializePredefinedMacros().
| #define TOSTR2 | ( | X | ) | #X |
| static void AddImplicitInclude | ( | MacroBuilder & | Builder, |
| StringRef | File, | ||
| FileManager & | FileMgr | ||
| ) | [static] |
AddImplicitInclude - Add an implicit #include of the specified file to the predefines buffer.
Definition at line 54 of file InitPreprocessor.cpp.
References clang::MacroBuilder::append(), and clang::HeaderSearch::NormalizeDashIncludePath().
Referenced by AddImplicitIncludePTH(), and clang::InitializePreprocessor().
| static void AddImplicitIncludeMacros | ( | MacroBuilder & | Builder, |
| StringRef | File, | ||
| FileManager & | FileMgr | ||
| ) | [static] |
Definition at line 60 of file InitPreprocessor.cpp.
References clang::MacroBuilder::append(), and clang::HeaderSearch::NormalizeDashIncludePath().
Referenced by clang::InitializePreprocessor().
| static void AddImplicitIncludePTH | ( | MacroBuilder & | Builder, |
| Preprocessor & | PP, | ||
| StringRef | ImplicitIncludePTH | ||
| ) | [static] |
AddImplicitIncludePTH - Add an implicit #include using the original file used to generate a PTH cache.
Definition at line 71 of file InitPreprocessor.cpp.
References AddImplicitInclude(), clang::Preprocessor::getDiagnostics(), clang::Preprocessor::getFileManager(), clang::PTHManager::getOriginalSourceFile(), clang::Preprocessor::getPTHManager(), P, and clang::DiagnosticsEngine::Report().
Referenced by clang::InitializePreprocessor().
| static void AddObjCXXARCLibstdcxxDefines | ( | const LangOptions & | LangOpts, |
| MacroBuilder & | Builder | ||
| ) | [static] |
Add definitions required for a smooth interaction between Objective-C++ automated reference counting and libstdc++ (4.2).
Definition at line 207 of file InitPreprocessor.cpp.
References clang::MacroBuilder::append(), and clang::MacroBuilder::defineMacro().
Referenced by clang::InitializePreprocessor().
| static void DefineBuiltinMacro | ( | MacroBuilder & | Builder, |
| StringRef | Macro, | ||
| DiagnosticsEngine & | Diags | ||
| ) | [static] |
Definition at line 34 of file InitPreprocessor.cpp.
References clang::MacroBuilder::defineMacro(), and clang::DiagnosticsEngine::Report().
Referenced by clang::InitializePreprocessor().
| static void DefineExactWidthIntType | ( | TargetInfo::IntType | Ty, |
| const TargetInfo & | TI, | ||
| MacroBuilder & | Builder | ||
| ) | [static] |
Definition at line 188 of file InitPreprocessor.cpp.
References clang::MacroBuilder::defineMacro(), DefineType(), clang::TargetInfo::getInt64Type(), clang::TargetInfo::getTypeConstantSuffix(), and clang::TargetInfo::getTypeWidth().
Referenced by InitializePredefinedMacros().
| static void DefineFloatMacros | ( | MacroBuilder & | Builder, |
| StringRef | Prefix, | ||
| const llvm::fltSemantics * | Sem | ||
| ) | [static] |
Definition at line 104 of file InitPreprocessor.cpp.
References clang::MacroBuilder::defineMacro(), and PickFP().
Referenced by InitializePredefinedMacros().
| static void DefineType | ( | const Twine & | MacroName, |
| TargetInfo::IntType | Ty, | ||
| MacroBuilder & | Builder | ||
| ) | [static] |
Definition at line 172 of file InitPreprocessor.cpp.
References clang::MacroBuilder::defineMacro(), and clang::TargetInfo::getTypeName().
Referenced by DefineExactWidthIntType(), and InitializePredefinedMacros().
| static void DefineTypeSize | ( | StringRef | MacroName, |
| unsigned | TypeWidth, | ||
| StringRef | ValSuffix, | ||
| bool | isSigned, | ||
| MacroBuilder & | Builder | ||
| ) | [static] |
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. LL).
Definition at line 156 of file InitPreprocessor.cpp.
References clang::MacroBuilder::defineMacro().
Referenced by DefineTypeSize(), and InitializePredefinedMacros().
| static void DefineTypeSize | ( | StringRef | MacroName, |
| TargetInfo::IntType | Ty, | ||
| const TargetInfo & | TI, | ||
| MacroBuilder & | Builder | ||
| ) | [static] |
DefineTypeSize - An overloaded helper that uses TargetInfo to determine the width, suffix, and signedness of the given type
Definition at line 166 of file InitPreprocessor.cpp.
References DefineTypeSize(), clang::TargetInfo::getTypeConstantSuffix(), clang::TargetInfo::getTypeWidth(), and clang::TargetInfo::isTypeSigned().
| static void DefineTypeSizeof | ( | StringRef | MacroName, |
| unsigned | BitWidth, | ||
| const TargetInfo & | TI, | ||
| MacroBuilder & | Builder | ||
| ) | [static] |
Definition at line 182 of file InitPreprocessor.cpp.
References clang::MacroBuilder::defineMacro(), and clang::TargetInfo::getCharWidth().
Referenced by InitializePredefinedMacros().
| static void DefineTypeWidth | ( | StringRef | MacroName, |
| TargetInfo::IntType | Ty, | ||
| const TargetInfo & | TI, | ||
| MacroBuilder & | Builder | ||
| ) | [static] |
Definition at line 177 of file InitPreprocessor.cpp.
References clang::MacroBuilder::defineMacro(), and clang::TargetInfo::getTypeWidth().
Referenced by InitializePredefinedMacros().
| static void InitializeFileRemapping | ( | DiagnosticsEngine & | Diags, |
| SourceManager & | SourceMgr, | ||
| FileManager & | FileMgr, | ||
| const PreprocessorOptions & | InitOpts | ||
| ) | [static] |
Definition at line 562 of file InitPreprocessor.cpp.
References clang::FileManager::getFile(), clang::FileEntry::getSize(), clang::FileManager::getVirtualFile(), clang::SourceManager::overrideFileContents(), clang::PreprocessorOptions::remapped_file_begin(), clang::PreprocessorOptions::remapped_file_buffer_begin(), clang::PreprocessorOptions::remapped_file_buffer_end(), clang::PreprocessorOptions::remapped_file_end(), clang::PreprocessorOptions::RemappedFilesKeepOriginalName, clang::DiagnosticsEngine::Report(), clang::PreprocessorOptions::RetainRemappedFileBuffers, and clang::SourceManager::setOverridenFilesKeepOriginalName().
Referenced by clang::InitializePreprocessor().
| static void InitializePredefinedMacros | ( | const TargetInfo & | TI, |
| const LangOptions & | LangOpts, | ||
| const FrontendOptions & | FEOpts, | ||
| MacroBuilder & | Builder | ||
| ) | [static] |
Definition at line 301 of file InitPreprocessor.cpp.
References clang::MacroBuilder::append(), CLANG_VERSION_STRING, DefineExactWidthIntType(), DefineFloatMacros(), clang::MacroBuilder::defineMacro(), DefineType(), DefineTypeSize(), DefineTypeSizeof(), DefineTypeWidth(), clang::TargetInfo::getChar16Type(), clang::TargetInfo::getChar32Type(), clang::TargetInfo::getCharWidth(), clang::getClangFullCPPVersion(), clang::getClangFullRepositoryVersion(), clang::TargetInfo::getDoubleFormat(), clang::TargetInfo::getDoubleWidth(), clang::TargetInfo::getFloatEvalMethod(), clang::TargetInfo::getFloatFormat(), clang::TargetInfo::getFloatWidth(), clang::TargetInfo::getIntMaxType(), clang::TargetInfo::getIntPtrType(), clang::TargetInfo::getIntWidth(), clang::TargetInfo::getLongDoubleFormat(), clang::TargetInfo::getLongDoubleWidth(), clang::TargetInfo::getLongLongWidth(), clang::TargetInfo::getLongWidth(), clang::TargetInfo::getPointerWidth(), clang::TargetInfo::getPtrDiffType(), clang::TargetInfo::getShortWidth(), clang::TargetInfo::getSigAtomicType(), clang::TargetInfo::getSizeType(), clang::TargetInfo::getTargetDefines(), clang::TargetInfo::getTypeWidth(), clang::TargetInfo::getUIntMaxType(), clang::TargetInfo::getUserLabelPrefix(), clang::TargetInfo::getVAListDeclaration(), clang::TargetInfo::getWCharType(), clang::TargetInfo::getWIntType(), clang::TargetInfo::isTypeSigned(), clang::LangOptions::NonGC, PickFP(), clang::FrontendOptions::ProgramAction, clang::frontend::RewriteObjC, clang::frontend::RunAnalysis, clang::TargetInfo::SignedInt, clang::TargetInfo::SignedLong, clang::TargetInfo::SignedLongLong, clang::TargetInfo::SignedShort, clang::LangOptions::SSPOn, clang::LangOptions::SSPReq, and TOSTR.
Referenced by clang::InitializePreprocessor().
| static void InitializeStandardPredefinedMacros | ( | const TargetInfo & | TI, |
| const LangOptions & | LangOpts, | ||
| const FrontendOptions & | FEOpts, | ||
| MacroBuilder & | Builder | ||
| ) | [static] |
Definition at line 258 of file InitPreprocessor.cpp.
References clang::MacroBuilder::defineMacro().
Referenced by clang::InitializePreprocessor().
| static T PickFP | ( | const llvm::fltSemantics * | Sem, |
| T | IEEESingleVal, | ||
| T | IEEEDoubleVal, | ||
| T | X87DoubleExtendedVal, | ||
| T | PPCDoubleDoubleVal, | ||
| T | IEEEQuadVal | ||
| ) | [static] |
PickFP - This is used to pick a value based on the FP semantics of the specified FP model.
Definition at line 89 of file InitPreprocessor.cpp.
Referenced by DefineFloatMacros(), and InitializePredefinedMacros().