Ericson2314 added a comment. One that that might make my position clearer is to substitute the name "build", "host", and "target" for "build", "run", and "emit". [A colleague of mine proposed these alternative names and I do think they are vastly more human friendly.]
Then if we write int main(void) { #if __is_run(window) printf("Hello, Satya"); #elif __is_run(darwin) printf("Hello, Tim"); #else prinf("Unclear who I am talking too."); #endif #if __is_emit(darwin) #error "What's a Mach-O?" #else /* do something with binutils */ #endif return 0; } and run clang -emit something main.c it is clear the intention is *not* for `-emit` to control `__is_emit`. To me, this makes clear that the problem isn't the name-shift I am proposing, but the inherent vagary of the terms "host" and "target" relative to their specific meaning in Autoconf's jargon. Repository: rC Clang https://reviews.llvm.org/D44753 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits