summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2017-12-15 20:07:53 +0000
committerAlex Lorenz <arphaman@gmail.com>2017-12-15 20:07:53 +0000
commit3b288c6e1b5592be31e2c68932b43987ff139e6f (patch)
tree35378c6ca44186b88e4c466569250a0ab743b570 /clang/lib/Lex
parent268759e58f47f019112288de6e3a3c1aba20a071 (diff)
downloadbcm5719-llvm-3b288c6e1b5592be31e2c68932b43987ff139e6f.tar.gz
bcm5719-llvm-3b288c6e1b5592be31e2c68932b43987ff139e6f.zip
__is_target_environment: Check the environment after parsing it
This ensures that target triples with environment versions can still work with __is_target_environment. llvm-svn: 320854
Diffstat (limited to 'clang/lib/Lex')
-rw-r--r--clang/lib/Lex/PPMacroExpansion.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp
index 9b062643b9b..41633f90c34 100644
--- a/clang/lib/Lex/PPMacroExpansion.cpp
+++ b/clang/lib/Lex/PPMacroExpansion.cpp
@@ -1643,10 +1643,9 @@ static bool isTargetOS(const TargetInfo &TI, const IdentifierInfo *II) {
/// 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
OpenPOWER on IntegriCloud