+ return o;
+}
+
+STATIC OP *(*sub_op_old_ck_gelem)(pTHX_ OP *) = 0;
+
+STATIC OP *sub_op_ck_gelem(pTHX_ OP *o) {
+ o = CALL_FPTR(sub_op_old_ck_entersub)(aTHX_ o);
+
+ if (sub_op_hint()) {
+ OP *rv2gv, *gvop;
+ GV *gv;
+
+ rv2gv = cUNOPo->op_first;
+ if (!rv2gv)
+ goto skip;
+
+ gvop = cUNOPx(rv2gv)->op_first;
+ if (!gvop || gvop->op_type != OP_GV)
+ goto skip;
+
+ gv = cGVOPx_gv(gvop);
+ if (!gv)
+ goto skip;
+
+ {
+ CV *cv;
+ dMY_CXT;
+
+ if (gv && SvTYPE(gv) >= SVt_PVGV && (cv = GvCV(gv)) == MY_CXT.placeholder) {
+ SvREFCNT_dec(cv);
+ GvCV(gv) = NULL;
+ if (!GvSV(gv) && !GvAV(gv) && !GvHV(gv) && !GvIO(gv) && !GvFORM(gv)) {
+ (void)hv_delete(GvSTASH(gv), GvNAME_get(gv), GvNAMELEN_get(gv), G_DISCARD);
+ }
+ }
+ }