[PATCH] D67897: Fix __is_signed builtin

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Sep 22 20:40:45 PDT 2019


rsmith accepted this revision.
rsmith added a comment.
This revision is now accepted and ready to land.

In D67897#1678420 <https://reviews.llvm.org/D67897#1678420>, @zoecarver wrote:

> > (Can I interest you in fixing the misbehaviour for enumeration types too?)
>
> Certainly. You mean that `__is_signed` should return false for enumeration types?


Yes, exactly.



================
Comment at: clang/docs/LanguageExtensions.rst:1165
   Note that this currently returns true for enumeration types if the underlying
-  type is signed, and returns false for floating-point types, in violation of
-  the requirements for ``std::is_signed``. This behavior is likely to change in
-  a future version of Clang.
+  type is signed, and returns true for floating-point types.
 * ``__is_standard_layout`` (C++, GNU, Microsoft, Embarcadero)
----------------
I'd just drop the second half of this sentence, and keep the "likely to change" warning for the non-conformance for enumeration types until that's fixed. (We already have an introductory sentence that says we follow the standard-specified behavior for traits marked (C++) unless otherwise specified.)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D67897/new/

https://reviews.llvm.org/D67897





More information about the cfe-commits mailing list