@@ -22,9 +22,12 @@ using namespace clang;
22
22
static const Builtin::Info BuiltinInfo[] = {
23
23
{ " not a builtin function" , nullptr , nullptr , nullptr , ALL_LANGUAGES},
24
24
#define BUILTIN (ID, TYPE, ATTRS ) { #ID, TYPE, ATTRS, 0 , ALL_LANGUAGES },
25
- #define LANGBUILTIN (ID, TYPE, ATTRS, BUILTIN_LANG ) { #ID, TYPE, ATTRS, 0 , BUILTIN_LANG },
26
- #define LIBBUILTIN (ID, TYPE, ATTRS, HEADER, BUILTIN_LANG ) { #ID, TYPE, ATTRS, HEADER,\
27
- BUILTIN_LANG },
25
+ #define LANGBUILTIN (ID, TYPE, ATTRS, LANGS ) \
26
+ { #ID, TYPE, ATTRS, 0 , LANGS } \
27
+ ,
28
+ #define LIBBUILTIN (ID, TYPE, ATTRS, HEADER, LANGS ) \
29
+ { #ID, TYPE, ATTRS, HEADER, LANGS } \
30
+ ,
28
31
#include " clang/Basic/Builtins.def"
29
32
};
30
33
@@ -53,12 +56,10 @@ bool Builtin::Context::BuiltinIsSupported(const Builtin::Info &BuiltinInfo,
53
56
bool MathBuiltinsUnsupported =
54
57
LangOpts.NoMathBuiltin && BuiltinInfo.HeaderName &&
55
58
llvm::StringRef (BuiltinInfo.HeaderName ).equals (" math.h" );
56
- bool GnuModeUnsupported = !LangOpts.GNUMode &&
57
- (BuiltinInfo.builtin_lang & GNU_LANG);
58
- bool MSModeUnsupported = !LangOpts.MicrosoftExt &&
59
- (BuiltinInfo.builtin_lang & MS_LANG);
60
- bool ObjCUnsupported = !LangOpts.ObjC1 &&
61
- BuiltinInfo.builtin_lang == OBJC_LANG;
59
+ bool GnuModeUnsupported = !LangOpts.GNUMode && (BuiltinInfo.Langs & GNU_LANG);
60
+ bool MSModeUnsupported =
61
+ !LangOpts.MicrosoftExt && (BuiltinInfo.Langs & MS_LANG);
62
+ bool ObjCUnsupported = !LangOpts.ObjC1 && BuiltinInfo.Langs == OBJC_LANG;
62
63
return !BuiltinsUnsupported && !MathBuiltinsUnsupported &&
63
64
!GnuModeUnsupported && !MSModeUnsupported && !ObjCUnsupported;
64
65
}
0 commit comments