[PATCH] D41087: [Preprocessor] Implement __is_target_{arch|vendor|os|environment} function-like builtin macros

Saleem Abdulrasool via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 11 21:25:27 PST 2017

compnerd added inline comments.

Comment at: lib/Lex/PPMacroExpansion.cpp:1923
+              Tok, *this, diag::err_feature_check_malformed);
+          return II ? getTargetInfo().getTriple().getArchName().equals_lower(
+                          II->getName())
Hmm, the one thing to consider here is the canonicalized vs spelt target.  e.g. `armv7-windows` will map to `thumbv7-unknown-windows-msvc`.

Comment at: test/Preprocessor/is_target.c:8
+#if __is_target_arch(arm64)
+  #error "invalid arch"
Can you use `mismatching arch` instead?  This helps differentiate between the invalid arch case below as apposed to the condition being false.  Similar for the other warnings.

  rC Clang


More information about the cfe-commits mailing list