The cloning code was trying to call CLONE on nameless hashes that nonetheless had an effective name (HvENAME).
This can happen if a nameless hash is assigned over a stash, as in
*foo:: = {}
or if a stash is undefined:
undef %foo::
(The effective name is how perl tracks the location internally, for
the sake of updating MRO caches.)
: 0;
/* Record stashes for possible cloning in Perl_clone(). */
- if (hvname)
+ if (HvNAME(sstr))
av_push(param->stashes, dstr);
}
}