[libcxx-commits] [PATCH] D97283: [libcxx][type_traits] is_unsigned is false for enum types

Tomas Matheson via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Mar 5 07:36:57 PST 2021

tmatheson added a comment.

> make libc++ conditionally use just `__is_unsigned` or a combination of `__is_unsigned && !__is_enum` based on the version of Clang

That's exactly what I was trying to avoid :) I'm reluctant to change the builtin for the following reasons:

- Since this is marked as an Embarcadero builtin, it might break whatever that is and I'm not sure who to ask about it
- I didn't know what the compiler support policy is so was hedging on the side of not breaking the interface
- `__is_unsigned && !__is_enum` will work for both builtin behaviours
- Keep the patch small

If this is the preferred approach though and the above are not concerns, I can also change the builtin and add the extra `#ifdef`.

  rG LLVM Github Monorepo



More information about the libcxx-commits mailing list