+STATIC SV *indirect_tag(pTHX_ SV *value) {
+#define indirect_tag(V) indirect_tag(aTHX_ (V))
+ indirect_hint_t *h;
+ SV *code = NULL;
+ dMY_CXT;
+
+ if (SvROK(value)) {
+ value = SvRV(value);
+ if (SvTYPE(value) >= SVt_PVCV) {
+ code = value;
+ SvREFCNT_inc_simple_NN(code);
+ }
+ }
+
+#if I_HINT_STRUCT
+ h = PerlMemShared_malloc(sizeof *h);
+ h->code = code;
+# if I_WORKAROUND_REQUIRE_PROPAGATION
+ h->require_tag = indirect_require_tag();
+# endif /* I_WORKAROUND_REQUIRE_PROPAGATION */