Ah thanks Craig. Perhaps we should turn that one on by default? On Thu, Aug 6, 2015, 10:17 PM Craig Topper <craig.top...@gmail.com> wrote:
> This was causing -Wmissing-field-initializers to fire due to Features not > being assigned in BUILTIN or LIBBUILTIN macro expansions. Fixed it in > r244307. > > On Thu, Aug 6, 2015 at 3:11 PM, Eric Christopher via cfe-commits < > cfe-commits@lists.llvm.org> wrote: > >> Author: echristo >> Date: Thu Aug 6 17:11:54 2015 >> New Revision: 244286 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=244286&view=rev >> Log: >> Continue the work from r243908 by adding a Features field to Builtin::Info >> so that we can populate it on a per-target basis with required features. >> >> Future commits will start using this information for warnings. >> >> Modified: >> cfe/trunk/include/clang/Basic/Builtins.h >> cfe/trunk/lib/Basic/Targets.cpp >> >> Modified: cfe/trunk/include/clang/Basic/Builtins.h >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Builtins.h?rev=244286&r1=244285&r2=244286&view=diff >> >> ============================================================================== >> --- cfe/trunk/include/clang/Basic/Builtins.h (original) >> +++ cfe/trunk/include/clang/Basic/Builtins.h Thu Aug 6 17:11:54 2015 >> @@ -51,6 +51,7 @@ enum ID { >> struct Info { >> const char *Name, *Type, *Attributes, *HeaderName; >> LanguageID Langs; >> + const char *Features; >> }; >> >> /// \brief Holds information about both target-independent and >> @@ -166,6 +167,10 @@ public: >> return strchr(getRecord(ID).Attributes, 'e') != nullptr; >> } >> >> + const char *getRequiredFeatures(unsigned ID) const { >> + return getRecord(ID).Features; >> + } >> + >> private: >> const Info &getRecord(unsigned ID) const; >> >> >> Modified: cfe/trunk/lib/Basic/Targets.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=244286&r1=244285&r2=244286&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/Basic/Targets.cpp (original) >> +++ cfe/trunk/lib/Basic/Targets.cpp Thu Aug 6 17:11:54 2015 >> @@ -2001,8 +2001,10 @@ void AMDGPUTargetInfo::getGCCRegNames(co >> // 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" >> }; >> >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >> > > > > -- > ~Craig >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits