class Context
Declaration
class Context { /* full declaration omitted */ };
Description
Holds information about both target-independent and target-specific builtins, allowing easy queries by clients. Builtins from an optional auxiliary target are stored in AuxTSRecords. Their IDs are shifted up by TSRecords.size() and need to be translated back with getAuxBuiltinID() before use.
Declared at: clang/include/clang/Basic/Builtins.h:71
Member Variables
- private llvm::ArrayRef<Info> TSRecords
- private llvm::ArrayRef<Info> AuxTSRecords
Method Overview
- public Context()
- public void InitializeTarget(const clang::TargetInfo & Target, const clang::TargetInfo * AuxTarget)
- public bool allowTypeMismatch(unsigned int ID) const
- public bool canBeRedeclared(unsigned int ID) const
- public unsigned int getAuxBuiltinID(unsigned int ID) const
- public const char * getHeaderName(unsigned int ID) const
- public const char * getName(unsigned int ID) const
- private const clang::Builtin::Info & getRecord(unsigned int ID) const
- public const char * getRequiredFeatures(unsigned int ID) const
- public unsigned int getRequiredVectorWidth(unsigned int ID) const
- public const char * getTypeString(unsigned int ID) const
- public bool hasCustomTypechecking(unsigned int ID) const
- public bool hasPtrArgsOrResult(unsigned int ID) const
- public bool hasReferenceArgsOrResult(unsigned int ID) const
- public void initializeBuiltins(clang::IdentifierTable & Table, const clang::LangOptions & LangOpts)
- public bool isAuxBuiltinID(unsigned int ID) const
- public static bool isBuiltinFunc(llvm::StringRef Name)
- public bool isConst(unsigned int ID) const
- public bool isConstWithoutErrno(unsigned int ID) const
- public bool isDirectlyAddressable(unsigned int ID) const
- public bool isHeaderDependentFunction(unsigned int ID) const
- public bool isInStdNamespace(unsigned int ID) const
- public bool isLibFunction(unsigned int ID) const
- private bool isLike(unsigned int ID, unsigned int & FormatIdx, bool & HasVAListArg, const char * Fmt) const
- public bool isNoReturn(unsigned int ID) const
- public bool isNoThrow(unsigned int ID) const
- public bool isPredefinedLibFunction(unsigned int ID) const
- public bool isPredefinedRuntimeFunction(unsigned int ID) const
- public bool isPrintfLike(unsigned int ID, unsigned int & FormatIdx, bool & HasVAListArg)
- public bool isPure(unsigned int ID) const
- public bool isReturnsTwice(unsigned int ID) const
- public bool isScanfLike(unsigned int ID, unsigned int & FormatIdx, bool & HasVAListArg)
- public bool isTSBuiltin(unsigned int ID) const
- public bool isUnevaluated(unsigned int ID) const
- public bool performsCallback(unsigned int ID, llvm::SmallVectorImpl<int> & Encoding) const
Methods
¶Context()
Context()
Declared at: clang/include/clang/Basic/Builtins.h:76
¶void InitializeTarget(
const clang::TargetInfo& Target,
const clang::TargetInfo* AuxTarget)
void InitializeTarget(
const clang::TargetInfo& Target,
const clang::TargetInfo* AuxTarget)
Description
Perform target-specific initialization
Declared at: clang/include/clang/Basic/Builtins.h:80
Parameters
- const clang::TargetInfo& Target
- const clang::TargetInfo* AuxTarget
- Target info to incorporate builtins from. May be nullptr.
¶bool allowTypeMismatch(unsigned int ID) const
bool allowTypeMismatch(unsigned int ID) const
Description
Determines whether a declaration of this builtin should be recognized even if the type doesn't match the specified signature.
Declared at: clang/include/clang/Basic/Builtins.h:190
Parameters
- unsigned int ID
¶bool canBeRedeclared(unsigned int ID) const
bool canBeRedeclared(unsigned int ID) const
Description
Returns true if this is a builtin that can be redeclared. Returns true for non-builtins.
Declared at: clang/include/clang/Basic/Builtins.h:259
Parameters
- unsigned int ID
¶unsigned int getAuxBuiltinID(
unsigned int ID) const
unsigned int getAuxBuiltinID(
unsigned int ID) const
Description
Return real builtin ID (i.e. ID it would have during compilation for AuxTarget).
Declared at: clang/include/clang/Basic/Builtins.h:251
Parameters
- unsigned int ID
¶const char* getHeaderName(unsigned int ID) const
const char* getHeaderName(unsigned int ID) const
Description
If this is a library function that comes from a specific header, retrieve that header name.
Declared at: clang/include/clang/Basic/Builtins.h:210
Parameters
- unsigned int ID
¶const char* getName(unsigned int ID) const
const char* getName(unsigned int ID) const
Description
Return the identifier name for the specified builtin, e.g. "__builtin_abs".
Declared at: clang/include/clang/Basic/Builtins.h:89
Parameters
- unsigned int ID
¶const clang::Builtin::Info& getRecord(
unsigned int ID) const
const clang::Builtin::Info& getRecord(
unsigned int ID) const
Declared at: clang/include/clang/Basic/Builtins.h:262
Parameters
- unsigned int ID
¶const char* getRequiredFeatures(
unsigned int ID) const
const char* getRequiredFeatures(
unsigned int ID) const
Declared at: clang/include/clang/Basic/Builtins.h:238
Parameters
- unsigned int ID
¶unsigned int getRequiredVectorWidth(
unsigned int ID) const
unsigned int getRequiredVectorWidth(
unsigned int ID) const
Declared at: clang/include/clang/Basic/Builtins.h:242
Parameters
- unsigned int ID
¶const char* getTypeString(unsigned int ID) const
const char* getTypeString(unsigned int ID) const
Description
Get the type descriptor string for the specified builtin.
Declared at: clang/include/clang/Basic/Builtins.h:94
Parameters
- unsigned int ID
¶bool hasCustomTypechecking(unsigned int ID) const
bool hasCustomTypechecking(unsigned int ID) const
Description
Determines whether this builtin has custom typechecking.
Declared at: clang/include/clang/Basic/Builtins.h:184
Parameters
- unsigned int ID
¶bool hasPtrArgsOrResult(unsigned int ID) const
bool hasPtrArgsOrResult(unsigned int ID) const
Description
Determines whether this builtin has a result or any arguments which are pointer types.
Declared at: clang/include/clang/Basic/Builtins.h:197
Parameters
- unsigned int ID
¶bool hasReferenceArgsOrResult(
unsigned int ID) const
bool hasReferenceArgsOrResult(
unsigned int ID) const
Description
Return true if this builtin has a result or any arguments which are reference types.
Declared at: clang/include/clang/Basic/Builtins.h:203
Parameters
- unsigned int ID
¶void initializeBuiltins(
clang::IdentifierTable& Table,
const clang::LangOptions& LangOpts)
void initializeBuiltins(
clang::IdentifierTable& Table,
const clang::LangOptions& LangOpts)
Description
Mark the identifiers for all the builtins with their appropriate builtin ID # and mark any non-portable builtin identifiers as such.
Declared at: clang/include/clang/Basic/Builtins.h:85
Parameters
- clang::IdentifierTable& Table
- const clang::LangOptions& LangOpts
¶bool isAuxBuiltinID(unsigned int ID) const
bool isAuxBuiltinID(unsigned int ID) const
Description
Return true if builtin ID belongs to AuxTarget.
Declared at: clang/include/clang/Basic/Builtins.h:245
Parameters
- unsigned int ID
¶static bool isBuiltinFunc(llvm::StringRef Name)
static bool isBuiltinFunc(llvm::StringRef Name)
Description
Returns true if this is a libc/libm function without the '__builtin_' prefix.
Declared at: clang/include/clang/Basic/Builtins.h:255
Parameters
- llvm::StringRef Name
¶bool isConst(unsigned int ID) const
bool isConst(unsigned int ID) const
Description
Return true if this function has no side effects and doesn't read memory.
Declared at: clang/include/clang/Basic/Builtins.h:110
Parameters
- unsigned int ID
¶bool isConstWithoutErrno(unsigned int ID) const
bool isConstWithoutErrno(unsigned int ID) const
Description
Return true if this function has no side effects and doesn't read memory, except for possibly errno. Such functions can be const when the MathErrno lang option is disabled.
Declared at: clang/include/clang/Basic/Builtins.h:234
Parameters
- unsigned int ID
¶bool isDirectlyAddressable(unsigned int ID) const
bool isDirectlyAddressable(unsigned int ID) const
Description
Determines whether this builtin can have its address taken with no special action required.
Declared at: clang/include/clang/Basic/Builtins.h:176
Parameters
- unsigned int ID
¶bool isHeaderDependentFunction(
unsigned int ID) const
bool isHeaderDependentFunction(
unsigned int ID) const
Description
Returns true if this builtin requires appropriate header in other compilers. In Clang it will work even without including it, but we can emit a warning about missing header.
Declared at: clang/include/clang/Basic/Builtins.h:155
Parameters
- unsigned int ID
¶bool isInStdNamespace(unsigned int ID) const
bool isInStdNamespace(unsigned int ID) const
Description
Determines whether this builtin is a C++ standard library function that lives in (possibly-versioned) namespace std, possibly a template specialization, where the signature is determined by the standard library declaration.
Declared at: clang/include/clang/Basic/Builtins.h:170
Parameters
- unsigned int ID
¶bool isLibFunction(unsigned int ID) const
bool isLibFunction(unsigned int ID) const
Description
Return true if this is a builtin for a libc/libm function, with a "__builtin_" prefix (e.g. __builtin_abs).
Declared at: clang/include/clang/Basic/Builtins.h:137
Parameters
- unsigned int ID
¶bool isLike(unsigned int ID,
unsigned int& FormatIdx,
bool& HasVAListArg,
const char* Fmt) const
bool isLike(unsigned int ID,
unsigned int& FormatIdx,
bool& HasVAListArg,
const char* Fmt) const
Description
Helper function for isPrintfLike and isScanfLike.
Declared at: clang/include/clang/Basic/Builtins.h:265
Parameters
- unsigned int ID
- unsigned int& FormatIdx
- bool& HasVAListArg
- const char* Fmt
¶bool isNoReturn(unsigned int ID) const
bool isNoReturn(unsigned int ID) const
Description
Return true if we know this builtin never returns.
Declared at: clang/include/clang/Basic/Builtins.h:120
Parameters
- unsigned int ID
¶bool isNoThrow(unsigned int ID) const
bool isNoThrow(unsigned int ID) const
Description
Return true if we know this builtin never throws an exception.
Declared at: clang/include/clang/Basic/Builtins.h:115
Parameters
- unsigned int ID
¶bool isPredefinedLibFunction(
unsigned int ID) const
bool isPredefinedLibFunction(
unsigned int ID) const
Description
Determines whether this builtin is a predefined libc/libm function, such as "malloc", where we know the signature a priori. In C, such functions behave as if they are predeclared, possibly with a warning on first use. In Objective-C and C++, they do not, but they are recognized as builtins once we see a declaration.
Declared at: clang/include/clang/Basic/Builtins.h:148
Parameters
- unsigned int ID
¶bool isPredefinedRuntimeFunction(
unsigned int ID) const
bool isPredefinedRuntimeFunction(
unsigned int ID) const
Description
Determines whether this builtin is a predefined compiler-rt/libgcc function, such as "__clear_cache", where we know the signature a priori.
Declared at: clang/include/clang/Basic/Builtins.h:162
Parameters
- unsigned int ID
¶bool isPrintfLike(unsigned int ID,
unsigned int& FormatIdx,
bool& HasVAListArg)
bool isPrintfLike(unsigned int ID,
unsigned int& FormatIdx,
bool& HasVAListArg)
Description
Determine whether this builtin is like printf in its formatting rules and, if so, set the index to the format string argument and whether this function as a va_list argument.
Declared at: clang/include/clang/Basic/Builtins.h:217
Parameters
- unsigned int ID
- unsigned int& FormatIdx
- bool& HasVAListArg
¶bool isPure(unsigned int ID) const
bool isPure(unsigned int ID) const
Description
Return true if this function has no side effects.
Declared at: clang/include/clang/Basic/Builtins.h:104
Parameters
- unsigned int ID
¶bool isReturnsTwice(unsigned int ID) const
bool isReturnsTwice(unsigned int ID) const
Description
Return true if we know this builtin can return twice.
Declared at: clang/include/clang/Basic/Builtins.h:125
Parameters
- unsigned int ID
¶bool isScanfLike(unsigned int ID,
unsigned int& FormatIdx,
bool& HasVAListArg)
bool isScanfLike(unsigned int ID,
unsigned int& FormatIdx,
bool& HasVAListArg)
Description
Determine whether this builtin is like scanf in its formatting rules and, if so, set the index to the format string argument and whether this function as a va_list argument.
Declared at: clang/include/clang/Basic/Builtins.h:222
Parameters
- unsigned int ID
- unsigned int& FormatIdx
- bool& HasVAListArg
¶bool isTSBuiltin(unsigned int ID) const
bool isTSBuiltin(unsigned int ID) const
Description
Return true if this function is a target-specific builtin.
Declared at: clang/include/clang/Basic/Builtins.h:99
Parameters
- unsigned int ID
¶bool isUnevaluated(unsigned int ID) const
bool isUnevaluated(unsigned int ID) const
Description
Returns true if this builtin does not perform the side-effects of its arguments.
Declared at: clang/include/clang/Basic/Builtins.h:131
Parameters
- unsigned int ID
¶bool performsCallback(
unsigned int ID,
llvm::SmallVectorImpl<int>& Encoding) const
bool performsCallback(
unsigned int ID,
llvm::SmallVectorImpl<int>& Encoding) const
Description
Determine whether this builtin has callback behavior (see llvm::AbstractCallSites for details). If so, add the index to the callback callee argument and the callback payload arguments.
Declared at: clang/include/clang/Basic/Builtins.h:227
Parameters
- unsigned int ID
- llvm::SmallVectorImpl<int>& Encoding