Author: arphaman Date: Fri Dec 15 12:07:53 2017 New Revision: 320854 URL: http://llvm.org/viewvc/llvm-project?rev=320854&view=rev Log: __is_target_environment: Check the environment after parsing it
This ensures that target triples with environment versions can still work with __is_target_environment. Added: cfe/trunk/test/Preprocessor/is_target_environment_version.c Modified: cfe/trunk/lib/Lex/PPMacroExpansion.cpp Modified: cfe/trunk/lib/Lex/PPMacroExpansion.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPMacroExpansion.cpp?rev=320854&r1=320853&r2=320854&view=diff ============================================================================== --- cfe/trunk/lib/Lex/PPMacroExpansion.cpp (original) +++ cfe/trunk/lib/Lex/PPMacroExpansion.cpp Fri Dec 15 12:07:53 2017 @@ -1643,10 +1643,9 @@ static bool isTargetOS(const TargetInfo /// Implements the __is_target_environment builtin macro. static bool isTargetEnvironment(const TargetInfo &TI, const IdentifierInfo *II) { - StringRef EnvName = TI.getTriple().getEnvironmentName(); - if (EnvName.empty()) - EnvName = "unknown"; - return EnvName.equals_lower(II->getName()); + std::string EnvName = (llvm::Twine("---") + II->getName().lower()).str(); + llvm::Triple Env(EnvName); + return TI.getTriple().getEnvironment() == Env.getEnvironment(); } /// ExpandBuiltinMacro - If an identifier token is read that is to be expanded Added: cfe/trunk/test/Preprocessor/is_target_environment_version.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/is_target_environment_version.c?rev=320854&view=auto ============================================================================== --- cfe/trunk/test/Preprocessor/is_target_environment_version.c (added) +++ cfe/trunk/test/Preprocessor/is_target_environment_version.c Fri Dec 15 12:07:53 2017 @@ -0,0 +1,6 @@ +// RUN: %clang_cc1 -fsyntax-only -triple x86_64-pc-windows-msvc18.0.0 -verify %s +// expected-no-diagnostics + +#if !__is_target_environment(msvc) + #error "mismatching environment" +#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits