PerlIO *f= Perl_debug_log;
PERL_ARGS_ASSERT_RE_INDENTF;
va_start(ap, depth);
- PerlIO_printf(f, "%*s", ( depth % 20 ) * 2, "");
+ PerlIO_printf(f, "%*s", ( (int)depth % 20 ) * 2, "");
result = PerlIO_vprintf(f, fmt, ap);
va_end(ap);
return result;
}
}
- Perl_re_printf( aTHX_ "\n%*sState+-",depth+1 );
+ Perl_re_printf( aTHX_ "\n");
+ Perl_re_indentf( aTHX_ "State+-", depth+1 );
for( charid=0 ; charid < trie->uniquecharcount ; charid++ ) {
Perl_re_printf( aTHX_ "%.*s", colwidth,"--------");
'stack' of where the undealt-with left
parens would be if they were actually
put there */
- IV fence = 0; /* Position of where most recent undealt-
+ /* The 'VOL' (expanding to 'volatile') is a workaround for an optimiser bug
+ * in Solaris Studio 12.3. See RT #127455 */
+ VOL IV fence = 0; /* Position of where most recent undealt-
with left paren in stack is; -1 if none.
*/
STRLEN len; /* Temporary */
* may have altered the stack in the time since we earlier set
* 'top_index'. */
- {
- /* Work round an optimiser bug in Solaris Studio 12.3:
- * for some reason, the presence of the __assert() in
- * av_tindex_nomg() causes the value of fence to get
- * corrupted, even though the assert is never called. So
- * save the value then restore afterwards.
- * Note that in fact merely accessing the value of fence
- * prior to the statement containing the assert is enough
- * to make the bug go away.
- */
- IV f = fence;
- top_index = av_tindex_nomg(stack);
- fence = f;
- }
-
+ top_index = av_tindex_nomg(stack);
if (top_index - fence >= 0) {
/* If the top entry on the stack is an operator, it had better
* be a '!', otherwise the entry below the top operand should
/* And this flag for matching all non-ASCII 0xFF and below */
if (flags & ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER)
{
- if (invert) {
- not_utf8 = _new_invlist(0);
- }
- else {
- not_utf8 = invlist_clone(PL_UpperLatin1);
- }
- inverting_allowed = FALSE; /* XXX needs more work to be able
- to allow this */
+ not_utf8 = invlist_clone(PL_UpperLatin1);
}
}
else if (OP(node) == ANYOFL) {
* conditional code points, so that when inverted, they will be gone
* from it */
_invlist_union(only_utf8, invlist, &invlist);
+ _invlist_union(not_utf8, invlist, &invlist);
_invlist_union(only_utf8_locale, invlist, &invlist);
_invlist_invert(invlist);
_invlist_intersection(invlist, PL_InBitmap, &invlist);