I think it is on by default for clang builds # Turn off missing field initializer warnings for gcc to avoid noise from # false positives with empty {}. Turn them on otherwise (they're off by # default for clang). check_cxx_compiler_flag("-Wmissing-field-initializers" CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG) if (CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG) if (CMAKE_COMPILER_IS_GNUCXX) append("-Wno-missing-field-initializers" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) else() append("-Wmissing-field-initializers" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) endif() endif()
On Thu, Aug 6, 2015 at 10:35 PM, Eric Christopher <echri...@gmail.com> wrote: > 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 >> > -- ~Craig
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits