https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84684
--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
If the in-place modification of the CONSTRUCTOR in these cases are intentional,
the fix could be:
if (entry == NULL)
{
/* We need to keep a pointer to the entry, not just the slot, as the
slot can move in the call to cxx_eval_builtin_function_call. */
*slot = entry = ggc_alloc<constexpr_call> ();
*entry = new_call;
+ entry->bindings = unshare_constructor (entry->bindings);
}
with or without the if (lhs->hash != rhs->hash) return false; performance
improvement.
But I really don't have an idea about whether the sharing is intentional or
not, or how much compile time memory increase would the above cause.