This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make bless(REF, REF) a fatal error, add bless tests.
[perl5.git] / regcomp.c
index bbdfdc3..f092e7e 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -904,6 +904,8 @@ S_study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *da
                        } else {
                            /* start offset must point into the last copy */
                            data->last_start_min += minnext * (mincount - 1);
+                           data->last_start_max += is_inf ? 0 : (maxcount - 1)
+                               * (minnext + data->pos_delta);
                        }
                    }
                    /* It is counted once already... */
@@ -2842,10 +2844,10 @@ S_regpposixcc(pTHX_ I32 value)
                        Perl_croak(aTHX_
                                   "Character class [:%.*s:] unknown",
                                   t - s - 1, s + 1);
-               } else if (ckWARN(WARN_REGEXP) && !SIZE_ONLY)
+               } else if (!SIZE_ONLY)
                    /* [[=foo=]] and [[.foo.]] are still future. */
-                   Perl_warner(aTHX_ WARN_REGEXP,
-                               "Character class syntax [%c %c] is reserved for future extensions", c, c);
+                   Perl_croak(aTHX_
+                              "Character class syntax [%c %c] is reserved for future extensions", c, c);
            } else {
                /* Maternal grandfather:
                 * "[:" ending in ":" but not in ":]" */
@@ -2873,8 +2875,8 @@ S_checkposixcc(pTHX)
            Perl_warner(aTHX_ WARN_REGEXP,
                        "Character class syntax [%c %c] belongs inside character classes", c, c);
            if (c == '=' || c == '.')
-               Perl_warner(aTHX_ WARN_REGEXP,
-                           "Character class syntax [%c %c] is reserved for future extensions", c, c);
+               Perl_croak(aTHX_
+                          "Character class syntax [%c %c] is reserved for future extensions", c, c);
        }
     }
 }