Ericson2314 added a comment. > I'm sure I could fine a GCC example
FWIW https://github.com/gcc-mirror/gcc/blob/master/gcc/config/aarch64/aarch64.c vs https://github.com/gcc-mirror/gcc/blob/master/gcc/common/config/aarch64/aarch64-common.c @steven_wu > It is not about matching command line name to builtin marco name. Whew :) > "target" is the platform we are compiling for, whether it is host or device > or something else. I'm in total agreement, if we are saying that from the compiler's perspective. > It is a different concept when you talking about cross-compiling, which > "target" is strictly not host and "build" or "host" doesn't matter to > compiler at all. So to be clear, I don't think there is a legitament reason *why* GHC and GCC care about the target platform at compile time. LLVM's approaching of always being multi-target and only choosing at run-time is far superior. Part of the philosophy behind that approach is moving towards a world where everything just works whether cross compiling or not. Redefining terminology based on whether we are cross compiling is counter to that goal. > This example is bad because you do not know about runtime when you do > compilation. I'm intrigued you singled out my first `#if` and not my second. If the binary is compiled with `clang` targeting windows, then (absent wine or something) we can be sure it is running on windows. On the other hand it seems odd and gcc-like to decide at compile time whether the newly built binary is targeting Darwin. The "emit" platform of the newly-built binary is strictly more removed from `clang`'s purview than the "run" platform. 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