The problem is that I confused FOLD with ANYOF_FOLD, and as a result,
emitted a locale regnode, which is tainted. Any tests that required
non-tainting started failing
/* (A locale node can have 1 point and be folded; all the other folds
* will include the fold, hence will have 2 points, so we won't get
- * here with FOLD set unless it is also locale) */
- ret = reg_node(pRExC_state, (U8) (! FOLD)
+ * here with ANYOF_FOLD set unless it is also locale) */
+ ret = reg_node(pRExC_state, (U8) (! (ANYOF_FLAGS(ret) & ANYOF_FOLD))
? EXACT
: EXACTFL
);
use File::Spec::Functions;
BEGIN { require './test.pl'; }
-plan tests => 336;
+plan tests => 338;
$| = 1;
ok(tainted($^A), "tainted formline picture makes a tainted accumulator");
}
+{ # Bug #80610
+ "Constant(1)" =~ / ^ ([a-z_]\w*) (?: [(] (.*) [)] )? $ /xi;
+ my $a = $1;
+ my $b = $2;
+ ok(! tainted($a), "regex optimization of single char /[]/i doesn't taint");
+ ok(! tainted($b), "regex optimization of single char /[]/i doesn't taint");
+}
+
# This may bomb out with the alarm signal so keep it last
SKIP: {
skip "No alarm()" unless $Config{d_alarm};