[Bug c++/80265] __builtin_{memcmp,memchr,strlen} are not usable in constexpr functions
palves at redhat dot com
gcc-bugzilla@gcc.gnu.org
Fri Mar 23 12:43:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80265
--- Comment #28 from Pedro Alves <palves at redhat dot com> ---
> Looking at the code, it does sound like you instead would want to
> tweak __equal_aux to end up with __simple==false when all __equal_aux's
> arguments are constant.
I suspect that wouldn't work, because we'd need to check whether the elements
the iterator range point-to are themselves constant.
So back to the constexpr __builtin_memcmp, or __constexpr_memcmp ideas.
Though I still don't see how __constexpr_memcmp would make a difference wrt to
number of __equal::equal implementations, but now I'm thinking that that's not
what you meant. From my view, __constexpr_memcmp implemented in a helper
constexpr function or directly in the frontend (as __builtin_memcmp), is just
an implementation detail of the function. Ultimately, __constexpr_memcmp or
constexpr __builtin_memcmp ends up interpreted in a similar way internally, I
expect.
More information about the Gcc-bugs
mailing list