diff --git a/builtin.c b/builtin.c index eca9ca3c5edd..7ed8a61f217f 100644 --- a/builtin.c +++ b/builtin.c @@ -48,8 +48,9 @@ Perl_prepare_export_lexical(pTHX) /* We need to have PL_comppad / PL_curpad set correctly for lexical importing */ ENTER; SAVESPTR(PL_comppad_name); PL_comppad_name = PadlistNAMES(CvPADLIST(PL_compcv)); - SAVESPTR(PL_comppad); PL_comppad = PadlistARRAY(CvPADLIST(PL_compcv))[1]; - SAVESPTR(PL_curpad); PL_curpad = PadARRAY(PL_comppad); + SAVECOMPPAD(); + PL_comppad = PadlistARRAY(CvPADLIST(PL_compcv))[1]; + PL_curpad = PadARRAY(PL_comppad); } #define export_lexical(name, sv) S_export_lexical(aTHX_ name, sv) diff --git a/lib/builtin.t b/lib/builtin.t index a1fd4221ee3d..feaeb4c2c304 100644 --- a/lib/builtin.t +++ b/lib/builtin.t @@ -621,6 +621,15 @@ TODO: { } } +# github #21981 +{ + fresh_perl_is(<<'EOS', "", {}, "github 21981: panic in intro_my"); +use B; +BEGIN { B::save_BEGINs; } +use v5.39; +EOS +} + # vim: tabstop=4 shiftwidth=4 expandtab autoindent softtabstop=4 done_testing();