<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Mar 24, 2016 at 8:30 AM, David Blaikie via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>This seems like a different tradeoff from the one Clang made for GCC compatibility (we define all the GCC macros, but then also define others so people can detect Clang). If people were just disabling features that NVCC didn't support, that seems fairly harmless - what sort of problems/difficulties did this create?</div></div></div></div></blockquote><div><br></div><div>I think Clang is aiming for less bug-for-bug compatibility with NVCC than with GCC or Clang, so it makes less sense to pretend to be them. I also expect that there are fewer checks in the wild for __NVCC__ than for _MSC_VER and __GNUC__. If we didn't *have* to define these macros to build the world, we wouldn't, and if we can get away without defining __NVCC__, that's great.</div></div></div></div>