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

Mark de Wever via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Mar 5 08:40:20 PST 2021

Mordante added a comment.

In D97283#2606794 <https://reviews.llvm.org/D97283#2606794>, @tmatheson wrote:

>> make libc++ conditionally use just `__is_unsigned` or a combination of `__is_unsigned && !__is_enum` based on the version of Clang
> - Since this is marked as an Embarcadero builtin, it might break whatever that is and I'm not sure who to ask about it

`__is_signed` is also as an Embarcadero builtin and we modified that builtin.

> - Keep the patch small

I'm in favour of that too.

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

I also prefer to fix Clang. I thought we could first land this patch and then fix Clang. But I don't object against fixing Clang first.
I think we can make two separate patches and first process the Clang fix and then the libc++ part.

  rG LLVM Github Monorepo



More information about the libcxx-commits mailing list