[perl #68108] : also fix if/else constant folding
[p5sagit/p5-mst-13.2.git] / t / op / pat.t
index aa6299f..00c5490 100644 (file)
@@ -13,7 +13,7 @@ sub run_tests;
 
 $| = 1;
 
-my $EXPECTED_TESTS = 4065;  # Update this when adding/deleting tests.
+my $EXPECTED_TESTS = 4066;  # Update this when adding/deleting tests.
 
 BEGIN {
     chdir 't' if -d 't';
@@ -4159,7 +4159,7 @@ sub run_tests {
             [ 1, qr#^((??{"(?:|<(/?bla)>)"}))((??{$nested_tags}))\1$#, "bla blubb <bla><blubb></blubb></bla>", "a b <bla><blubb></blubb></bla>" ],
             [ 0, qr#^((??{"(?!)"}))?((??{$nested_tags}))(?!)$#, "bla blubb undef", "a b undef" ],
 
-        ) {
+        ) { #"#silence vim highlighting
             $c++;
             @ctl_n = ();
             @plus = ();
@@ -4347,6 +4347,24 @@ sub run_tests {
        }
     }
 
+    # This only works under -DEBUGGING because it relies on an assert().
+    {
+        local $BugId = '60508';
+       local $Message = "Check capture offset re-entrancy of utf8 code.";
+
+        sub fswash { $_[0] =~ s/([>X])//g; }
+
+        my $k1 = "." x 4 . ">>";
+        fswash($k1);
+
+        my $k2 = "\x{f1}\x{2022}";
+        $k2 =~ s/([\360-\362])/>/g;
+        fswash($k2);
+
+        iseq($k2, "\x{2022}", "utf8::SWASHNEW doesn't cause capture leaks");
+    }
+
+
     {
        local $BugId = 65372;   # minimal CURLYM limited to 32767 matches
        my @pat = (