diff options
author | Reid Kleckner <reid@kleckner.net> | 2013-11-13 22:47:22 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2013-11-13 22:47:22 +0000 |
commit | cf8933d1b79455dc13e76fecb114f286bc3c19d0 (patch) | |
tree | b052d21138d816fe7a35f56814d29333c9da94ac /clang/lib/Basic | |
parent | 21fee96f69742e3f2168a03de86b949fbd8094f7 (diff) | |
download | bcm5719-llvm-cf8933d1b79455dc13e76fecb114f286bc3c19d0.tar.gz bcm5719-llvm-cf8933d1b79455dc13e76fecb114f286bc3c19d0.zip |
Only provide MS builtins when -fms-extensions is on
We already have builtins that are only available in GNU mode, so this
mirrors that.
Reviewers: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D2128
llvm-svn: 194615
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Builtins.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Basic/Builtins.cpp b/clang/lib/Basic/Builtins.cpp index e5775b687ce..c84dd6dc38f 100644 --- a/clang/lib/Basic/Builtins.cpp +++ b/clang/lib/Basic/Builtins.cpp @@ -22,6 +22,7 @@ using namespace clang; static const Builtin::Info BuiltinInfo[] = { { "not a builtin function", 0, 0, 0, ALL_LANGUAGES }, #define BUILTIN(ID, TYPE, ATTRS) { #ID, TYPE, ATTRS, 0, ALL_LANGUAGES }, +#define LANGBUILTIN(ID, TYPE, ATTRS, BUILTIN_LANG) { #ID, TYPE, ATTRS, 0, BUILTIN_LANG }, #define LIBBUILTIN(ID, TYPE, ATTRS, HEADER, BUILTIN_LANG) { #ID, TYPE, ATTRS, HEADER,\ BUILTIN_LANG }, #include "clang/Basic/Builtins.def" @@ -54,10 +55,12 @@ bool Builtin::Context::BuiltinIsSupported(const Builtin::Info &BuiltinInfo, llvm::StringRef(BuiltinInfo.HeaderName).equals("math.h"); bool GnuModeUnsupported = !LangOpts.GNUMode && (BuiltinInfo.builtin_lang & GNU_LANG); + bool MSModeUnsupported = !LangOpts.MicrosoftExt && + (BuiltinInfo.builtin_lang & MS_LANG); bool ObjCUnsupported = !LangOpts.ObjC1 && BuiltinInfo.builtin_lang == OBJC_LANG; return !BuiltinsUnsupported && !MathBuiltinsUnsupported && - !GnuModeUnsupported && !ObjCUnsupported; + !GnuModeUnsupported && !MSModeUnsupported && !ObjCUnsupported; } /// InitializeBuiltins - Mark the identifiers for all the builtins with their |