diff --git a/include/clang/Basic/Builtins.h b/include/clang/Basic/Builtins.h index 0bfba26d78494822336616815d8b2df9a6c911f7..98b3d0bacf4639b082478c6686d58f85b223d919 100644 --- a/include/clang/Basic/Builtins.h +++ b/include/clang/Basic/Builtins.h @@ -51,7 +51,7 @@ enum ID { struct Info { const char *Name, *Type, *Attributes, *HeaderName; - LanguageID builtin_lang; + LanguageID Langs; }; /// \brief Holds information about both target-independent and diff --git a/lib/Basic/Builtins.cpp b/lib/Basic/Builtins.cpp index fc702c695be7ab2edc97a9543b1be007cdd30408..e19c44c21c3c22d385c46f28a6cd0765c653e37c 100644 --- a/lib/Basic/Builtins.cpp +++ b/lib/Basic/Builtins.cpp @@ -22,9 +22,12 @@ using namespace clang; static const Builtin::Info BuiltinInfo[] = { { "not a builtin function", nullptr, nullptr, nullptr, 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 }, +#define LANGBUILTIN(ID, TYPE, ATTRS, LANGS) \ + { #ID, TYPE, ATTRS, 0, LANGS } \ + , +#define LIBBUILTIN(ID, TYPE, ATTRS, HEADER, LANGS) \ + { #ID, TYPE, ATTRS, HEADER, LANGS } \ + , #include "clang/Basic/Builtins.def" }; @@ -53,12 +56,10 @@ bool Builtin::Context::BuiltinIsSupported(const Builtin::Info &BuiltinInfo, bool MathBuiltinsUnsupported = LangOpts.NoMathBuiltin && BuiltinInfo.HeaderName && 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; + bool GnuModeUnsupported = !LangOpts.GNUMode && (BuiltinInfo.Langs & GNU_LANG); + bool MSModeUnsupported = + !LangOpts.MicrosoftExt && (BuiltinInfo.Langs & MS_LANG); + bool ObjCUnsupported = !LangOpts.ObjC1 && BuiltinInfo.Langs == OBJC_LANG; return !BuiltinsUnsupported && !MathBuiltinsUnsupported && !GnuModeUnsupported && !MSModeUnsupported && !ObjCUnsupported; }