This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On 3/29/19 11:12 AM, Jakub Jelinek wrote:
I see what you did there ;-) I could make my patch use the same idiom as what you have in the char_traits patch if folks would prefer.On Fri, Mar 29, 2019 at 11:07:53AM -0400, Jason Merrill wrote:On Tue, Mar 19, 2019 at 4:57 PM Ed Smith-Rowland via gcc-patches <gcc-patches@gcc.gnu.org> wrote:On 3/18/19 6:18 PM, Jonathan Wakely wrote:On 17/03/19 22:54 -0400, Ed Smith-Rowland via libstdc++ wrote: I'm very surprised that none of the algos that dispatch to __builtin_memove need changes, because those optimizations won't work in constant expressions. I would expect to have to use std::is_constant_evaluated to disable the optimizations when used in constant expressions.As am I. As I mentioned on IRC I could roll a constexpr memmove. I was wondering if somehow I'm not checking what I think I'm checking (but I don't see how.) I wonder if the builtins are handled differently somehow by the front end. I'm still not sure why __builtin_memcmp is OK for array == array but not array != array. In that case I just do element by element compare for constexpr now anyway.Is there a PR about making these builtins work in constexpr?Yes, PR80265. Jakub
BTW, what does (void) __s; do?In other news, assuming that it's official there was constexpr in char_traits in some paper. I was going to try that but it looks like you were starting.
Ed
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |