diff options
author | Chris Lattner <sabre@nondot.org> | 2009-06-13 07:13:28 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-06-13 07:13:28 +0000 |
commit | 148772a841cae6f32db16d890e788b92a763bb3f (patch) | |
tree | 5481ed924f1f63b790e7ead89fa047446b976746 /include/clang/Lex/Preprocessor.h | |
parent | 247baca66ca998de9c415c19019e199f4895e81c (diff) |
implement and document a new __has_feature and __has_builtin magic
builtin preprocessor macro. This appears to work with two caveats:
1) builtins are registered in -E mode, and 2) target-specific builtins
are unconditionally registered even if they aren't supported by the
target (e.g. SSE4 builtin when only SSE1 is enabled).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73289 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Lex/Preprocessor.h')
-rw-r--r-- | include/clang/Lex/Preprocessor.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h index 5b9959c32a..4831b9bb25 100644 --- a/include/clang/Lex/Preprocessor.h +++ b/include/clang/Lex/Preprocessor.h @@ -69,6 +69,8 @@ class Preprocessor { IdentifierInfo *Ident__TIMESTAMP__; // __TIMESTAMP__ IdentifierInfo *Ident__COUNTER__; // __COUNTER__ IdentifierInfo *Ident_Pragma, *Ident__VA_ARGS__; // _Pragma, __VA_ARGS__ + IdentifierInfo *Ident__has_feature; // __has_feature + IdentifierInfo *Ident__has_builtin; // __has_builtin SourceLocation DATELoc, TIMELoc; unsigned CounterValue; // Next __COUNTER__ value. @@ -194,14 +196,13 @@ private: // Cached tokens state. public: Preprocessor(Diagnostic &diags, const LangOptions &opts, TargetInfo &target, SourceManager &SM, HeaderSearch &Headers, - IdentifierInfoLookup* IILookup = 0); + IdentifierInfoLookup *IILookup = 0); ~Preprocessor(); Diagnostic &getDiagnostics() const { return *Diags; } void setDiagnostics(Diagnostic &D) { Diags = &D; } - const LangOptions &getLangOptions() const { return Features; } TargetInfo &getTargetInfo() const { return Target; } FileManager &getFileManager() const { return FileMgr; } @@ -667,7 +668,6 @@ private: /// RegisterBuiltinMacros - Register builtin macros, such as __LINE__ with the /// identifier table. void RegisterBuiltinMacros(); - IdentifierInfo *RegisterBuiltinMacro(const char *Name); /// HandleMacroExpandedIdentifier - If an identifier token is read that is to /// be expanded as a macro, handle it and return the next token as 'Tok'. If |