struct Info {
const char *Name, *Type, *Attributes, *HeaderName;
LanguageID Langs;
+ const char *Features;
};
/// \brief Holds information about both target-independent and
return strchr(getRecord(ID).Attributes, 'e') != nullptr;
}
+ const char *getRequiredFeatures(unsigned ID) const {
+ return getRecord(ID).Features;
+ }
+
private:
const Info &getRecord(unsigned ID) const;
// Namespace for x86 abstract base class
const Builtin::Info BuiltinInfo[] = {
#define BUILTIN(ID, TYPE, ATTRS) { #ID, TYPE, ATTRS, 0, ALL_LANGUAGES },
-#define LIBBUILTIN(ID, TYPE, ATTRS, HEADER) { #ID, TYPE, ATTRS, HEADER,\
- ALL_LANGUAGES },
+#define LIBBUILTIN(ID, TYPE, ATTRS, HEADER) \
+ { #ID, TYPE, ATTRS, HEADER, ALL_LANGUAGES },
+#define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) \
+ { #ID, TYPE, ATTRS, 0, ALL_LANGUAGES, FEATURE },
#include "clang/Basic/BuiltinsX86.def"
};