scalars used in postponed subexpressions aren't first class regexps,
[p5sagit/p5-mst-13.2.git] / regexec.c
index f932d17..be159ed 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -3741,7 +3741,9 @@ S_regmatch(pTHX_ regmatch_info *reginfo, regnode *prog)
                        if (!(SvFLAGS(ret)
                              & (SVs_TEMP | SVs_PADTMP | SVf_READONLY
                                 | SVs_GMG))) {
-                           SvUPGRADE(ret, SVt_ORANGE);
+                           /* This isn't a first class regexp. Instead, it's
+                              caching a regexp onto an existing, Perl visible
+                              scalar.  */
                            sv_magic(ret,(SV*)ReREFCNT_inc(re),
                                        PERL_MAGIC_qr,0,0);
                        }