Author: rsmith Date: Wed Apr 20 20:46:37 2016 New Revision: 266945 URL: http://llvm.org/viewvc/llvm-project?rev=266945&view=rev Log: [modules] Make the tweak to avoid circular inclusion of emmintrin.h and xmmintrin.h a bit more directed. If for whatever reason modules are enabled but we textually include one of these headers, don't deploy the special case for modules. To make this work cleanly, extend __building_module to be defined even when modules is disabled.
Modified: cfe/trunk/lib/Headers/xmmintrin.h cfe/trunk/lib/Lex/PPMacroExpansion.cpp Modified: cfe/trunk/lib/Headers/xmmintrin.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/xmmintrin.h?rev=266945&r1=266944&r2=266945&view=diff ============================================================================== --- cfe/trunk/lib/Headers/xmmintrin.h (original) +++ cfe/trunk/lib/Headers/xmmintrin.h Wed Apr 20 20:46:37 2016 @@ -1946,7 +1946,7 @@ do { \ #undef __DEFAULT_FN_ATTRS /* Ugly hack for backwards-compatibility (compatible with gcc) */ -#if defined(__SSE2__) && !__has_feature(modules) +#if defined(__SSE2__) && !__building_module(_Builtin_intrinsics) #include <emmintrin.h> #endif Modified: cfe/trunk/lib/Lex/PPMacroExpansion.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPMacroExpansion.cpp?rev=266945&r1=266944&r2=266945&view=diff ============================================================================== --- cfe/trunk/lib/Lex/PPMacroExpansion.cpp (original) +++ cfe/trunk/lib/Lex/PPMacroExpansion.cpp Wed Apr 20 20:46:37 2016 @@ -330,18 +330,11 @@ void Preprocessor::RegisterBuiltinMacros Ident__is_identifier = RegisterBuiltinMacro(*this, "__is_identifier"); // Modules. - if (LangOpts.Modules) { - Ident__building_module = RegisterBuiltinMacro(*this, "__building_module"); - - // __MODULE__ - if (!LangOpts.CurrentModule.empty()) - Ident__MODULE__ = RegisterBuiltinMacro(*this, "__MODULE__"); - else - Ident__MODULE__ = nullptr; - } else { - Ident__building_module = nullptr; + Ident__building_module = RegisterBuiltinMacro(*this, "__building_module"); + if (!LangOpts.CurrentModule.empty()) + Ident__MODULE__ = RegisterBuiltinMacro(*this, "__MODULE__"); + else Ident__MODULE__ = nullptr; - } } /// isTrivialSingleTokenExpansion - Return true if MI, which has a single token _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits