The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
  sv.c	

  warn(warn_uninit);

  warn(warn_uninit);

  warn(warn_uninit);

  warn(warn_uninit);

  not_a_number(sv);

  not_a_number(sv);

  warn(warn_uninit);

  not_a_number(sv);

  warn(warn_uninit);

  not_a_number(sv);

  not_a_number(sv);

  warn(warn_uninit);

  warn(warn_uninit);

  Subroutine %s redefined	

  Invalid conversion in %s:

  Undefined value assigned to typeglob

  Reference is already weak			[Perl_sv_rvweaken] <<TODO

  vector argument not supported with alpha versions

  Mandatory Warnings
  ------------------
  Malformed UTF-8 character [sv_pos_b2u] (not tested: difficult to produce
                                          with perl now)

  Mandatory Warnings TODO
  ------------------
    Attempt to free non-arena SV: 0x%lx		[del_sv]
    Reference miscount in sv_replace()		[sv_replace]
    Attempt to free unreferenced scalar		[sv_free]
    Attempt to free temp prematurely: SV 0x%lx	[sv_free]
    semi-panic: attempt to dup freed string	[newSVsv]
    

__END__
# sv.c
use integer ;
use warnings 'uninitialized' ;
$x = 1 + $a[0] ; # a
no warnings 'uninitialized' ;
$x = 1 + $b[0] ; # a
EXPECT
Use of uninitialized value $a[0] in integer addition (+) at - line 4.
########
# sv.c (sv_2iv)
package fred ;
sub TIESCALAR { my $x ; bless \$x}
sub FETCH { return undef }
sub STORE { return 1 }
package main ;
tie $A, 'fred' ;
use integer ;
use warnings 'uninitialized' ;
$A *= 2 ;
no warnings 'uninitialized' ;
$A *= 2 ;
EXPECT
Use of uninitialized value $A in integer multiplication (*) at - line 10.
########
# sv.c
use integer ;
use warnings 'uninitialized' ;
my $x *= 2 ; #b 
no warnings 'uninitialized' ;
my $y *= 2 ; #b 
EXPECT
Use of uninitialized value $x in integer multiplication (*) at - line 4.
########
# sv.c (sv_2uv)
package fred ;
sub TIESCALAR { my $x ; bless \$x}
sub FETCH { return undef }
sub STORE { return 1 }
package main ;
tie $A, 'fred' ;
use warnings 'uninitialized' ;
$B = 0 ;
$B |= $A ;
no warnings 'uninitialized' ;
$B = 0 ;
$B |= $A ;
EXPECT
Use of uninitialized value $A in bitwise or (|) at - line 10.
########
# sv.c
use warnings 'uninitialized' ;
my $Y = 1 ; 
my $x = 1 | $a[$Y] ;
no warnings 'uninitialized' ;
my $Y = 1 ; 
$x = 1 | $b[$Y] ;
EXPECT
Use of uninitialized value within @a in bitwise or (|) at - line 4.
########
# sv.c
use warnings 'uninitialized' ;
my $Y = 1 ; 
my $x = 1 & $a[$Y] ;
no warnings 'uninitialized' ;
my $Y = 1 ; 
$x = 1 & $b[$Y] ;
EXPECT
Use of uninitialized value within @a in bitwise and (&) at - line 4.
########
# sv.c
use warnings 'uninitialized' ;
my $Y = 1 ; 
my $x = ~$a[$Y] ;
no warnings 'uninitialized' ;
my $Y = 1 ; 
$x = ~$b[$Y] ;
EXPECT
Use of uninitialized value within @a in 1's complement (~) at - line 4.
########
# sv.c
use warnings 'uninitialized' ;
my $x *= 1 ; # d
no warnings 'uninitialized' ;
my $y *= 1 ; # d
EXPECT
Use of uninitialized value $x in multiplication (*) at - line 3.
########
# sv.c
use warnings 'uninitialized' ;
$x = 1 + $a[0] ; # e
no warnings 'uninitialized' ;
$x = 1 + $b[0] ; # e
EXPECT
Use of uninitialized value $a[0] in addition (+) at - line 3.
########
# sv.c (sv_2nv)
package fred ;
sub TIESCALAR { my $x ; bless \$x}
sub FETCH { return undef }
sub STORE { return 1 }
package main ;
tie $A, 'fred' ;
use warnings 'uninitialized' ;
$A *= 2 ;
no warnings 'uninitialized' ;
$A *= 2 ;
EXPECT
Use of uninitialized value $A in multiplication (*) at - line 9.
########
# sv.c
use warnings 'uninitialized' ;
$x = $y + 1 ; # f
no warnings 'uninitialized' ;
$x = $z + 1 ; # f
EXPECT
Use of uninitialized value $y in addition (+) at - line 3.
########
# sv.c
use warnings 'uninitialized' ;
$x = chop undef ; # g
no warnings 'uninitialized' ;
$x = chop undef ; # g
EXPECT
Modification of a read-only value attempted at - line 3.
########
# sv.c
use warnings 'uninitialized' ;
$x = chop $y ; # h
no warnings 'uninitialized' ;
$x = chop $z ; # h
EXPECT
Use of uninitialized value $y in scalar chop at - line 3.
########
# sv.c (sv_2pv)
package fred ;
sub TIESCALAR { my $x ; bless \$x}
sub FETCH { return undef }
sub STORE { return 1 }
package main ;
tie $A, 'fred' ;
use warnings 'uninitialized' ;
$B = "" ;
$B .= $A ;
no warnings 'uninitialized' ;
$C = "" ;
$C .= $A ;
EXPECT
Use of uninitialized value $A in concatenation (.) or string at - line 10.
########
# perlbug 20011116.125
use warnings 'uninitialized';
$a = undef;
$foo = join '', $a, "\n";
$foo = "$a\n";
$foo = "a:$a\n";
EXPECT
Use of uninitialized value $a in join or string at - line 4.
Use of uninitialized value $a in concatenation (.) or string at - line 5.
Use of uninitialized value $a in concatenation (.) or string at - line 6.
########
# sv.c 
use warnings 'numeric' ;
sub TIESCALAR{bless[]} ; 
sub FETCH {"def"} ; 
tie $a,"main" ; 
my $b = 1 + $a;
no warnings 'numeric' ;
my $c = 1 + $a;
EXPECT
Argument "def" isn't numeric in addition (+) at - line 6.
########
# sv.c
use warnings 'numeric' ;
my $x = 1 + "def" ;
no warnings 'numeric' ;
my $z = 1 + "def" ;
EXPECT
Argument "def" isn't numeric in addition (+) at - line 3.
########
# sv.c
use warnings 'numeric' ;
my $a = "def" ;
my $x = 1 + $a ;
no warnings 'numeric' ;
my $y = 1 + $a ;
EXPECT
Argument "def" isn't numeric in addition (+) at - line 4.
########
# sv.c
use warnings 'numeric' ; use integer ;
my $a = "def" ;
my $x = 1 + $a ;
no warnings 'numeric' ;
my $z = 1 + $a ;
EXPECT
Argument "def" isn't numeric in integer addition (+) at - line 4.
########
# sv.c
use warnings 'numeric' ;
my $x = 1 & "def" ;
no warnings 'numeric' ;
my $z = 1 & "def" ;
EXPECT
Argument "def" isn't numeric in bitwise and (&) at - line 3.
########
# sv.c
use warnings 'numeric' ;
my $x = pack i => "def" ;
no warnings 'numeric' ;
my $z = pack i => "def" ;
EXPECT
Argument "def" isn't numeric in pack at - line 3.
########
# sv.c
use warnings 'numeric' ; 
my $a = "d\0f" ;
my $x = 1 + $a ;
no warnings 'numeric' ;
my $z = 1 + $a ;
EXPECT
Argument "d\0f" isn't numeric in addition (+) at - line 4.
########
# sv.c
use warnings 'redefine' ;
sub fred {}  
sub joe {} 
*fred = \&joe ;
no warnings 'redefine' ;
sub jim {} 
*jim = \&joe ;
EXPECT
Subroutine main::fred redefined at - line 5.
########
# sv.c
use warnings 'printf' ;
open F, ">".($^O eq 'VMS'? 'NL:' : '/dev/null') ;
printf F "%y\n" ;
my $a = sprintf "%y" ;
printf F "%" ;
$a = sprintf "%" ;
printf F "%\x02" ;
$a = sprintf "%\x02" ;
printf F "%lly" ;
$a = sprintf "%lly" ;
printf F "%25lly" ;
$a = sprintf "%25lly" ;
printf F "%+2Ly" ;
$a = sprintf "%+2Ly" ;
printf F "%+2ll" ;
$a = sprintf "%+2ll" ;
printf F "%+2L\x03" ;
$a = sprintf "%+2L\x03" ;
no warnings 'printf' ;
printf F "%y\n" ;
$a = sprintf "%y" ;
printf F "%" ;
$a = sprintf "%" ;
printf F "%\x02" ;
$a = sprintf "%\x02" ;
printf F "%lly" ;
$a = sprintf "%lly" ;
printf F "%25lly" ;
$a = sprintf "%25lly" ;
printf F "%+2Ly" ;
$a = sprintf "%+2Ly" ;
printf F "%+2ll" ;
$a = sprintf "%+2ll" ;
printf F "%+2L\x03" ;
$a = sprintf "%+2L\x03" ;
EXPECT
Invalid conversion in printf: "%y" at - line 4.
Invalid conversion in sprintf: "%y" at - line 5.
Invalid conversion in printf: end of string at - line 6.
Invalid conversion in sprintf: end of string at - line 7.
Invalid conversion in printf: "%\002" at - line 8.
Invalid conversion in sprintf: "%\002" at - line 9.
Invalid conversion in printf: "%lly" at - line 10.
Invalid conversion in sprintf: "%lly" at - line 11.
Invalid conversion in printf: "%25lly" at - line 12.
Invalid conversion in sprintf: "%25lly" at - line 13.
Invalid conversion in printf: "%+2Ly" at - line 14.
Invalid conversion in sprintf: "%+2Ly" at - line 15.
Invalid conversion in printf: "%+2ll" at - line 16.
Invalid conversion in sprintf: "%+2ll" at - line 17.
Invalid conversion in printf: "%+2L\003" at - line 18.
Invalid conversion in sprintf: "%+2L\003" at - line 19.
########
# sv.c
use warnings 'misc' ;
*a = undef ;
no warnings 'misc' ;
*b = undef ;
EXPECT
Undefined value assigned to typeglob at - line 3.
########
# sv.c
use warnings 'numeric' ;
$a = "\x{100}\x{200}" * 42;
no warnings 'numeric' ;
$a = "\x{100}\x{200}" * 42;
EXPECT
Argument "\x{100}\x{200}" isn't numeric in multiplication (*) at - line 3.
########
# sv.c
use warnings 'numeric' ;
$a = "\x{100}\x{200}"; $a = -$a;
no warnings 'numeric' ;
$a = "\x{100}\x{200}"; $a = -$a;
EXPECT
Argument "\x{100}\x{200}" isn't numeric in negation (-) at - line 3.
########
# sv.c
use warnings 'redefine' ;
use utf8;
use open qw( :utf8 :std );
sub frèd {}  
sub jòè {} 
*frèd = \&jòè;
no warnings 'redefine' ;
sub jìm {} 
*jìm = \&jòè ;
EXPECT
Subroutine main::frèd redefined at - line 7.
########
# sv.c
use warnings 'redefine' ;
use utf8;
use open qw( :utf8 :std );
sub f렏 {}  
sub 조Ȩ {} 
*f렏 = \&조Ȩ ;
no warnings 'redefine' ;
sub 짐 {} 
*짐 = \&조Ȩ ;
EXPECT
Subroutine main::f렏 redefined at - line 7.
########
# sv.c
sprintf "%vd", new version v1.1_0;
use warnings 'printf' ;
sprintf "%vd", new version v1.1_0;
no warnings 'printf' ;
sprintf "%vd", new version v1.1_0;
EXPECT
vector argument not supported with alpha versions at - line 2.
vector argument not supported with alpha versions at - line 4.