Thinking about this, I want to retract my previous suggestion. This patch fixes some things, and does not increase the coupling between type_traits and gcc. Lets commit this patch as-is, and then decouple the #ifdefs in another patch. So, LGTM. http://reviews.llvm.org/D4340