1 sv.c 2 3 warn(warn_uninit); 4 5 warn(warn_uninit); 6 7 warn(warn_uninit); 8 9 warn(warn_uninit); 10 11 not_a_number(sv); 12 13 not_a_number(sv); 14 15 warn(warn_uninit); 16 17 not_a_number(sv); 18 19 warn(warn_uninit); 20 21 not_a_number(sv); 22 23 not_a_number(sv); 24 25 warn(warn_uninit); 26 27 warn(warn_uninit); 28 29 Subroutine %s redefined 30 31 Invalid conversion in %s: 32 33 Undefined value assigned to typeglob 34 35 Reference is already weak [Perl_sv_rvweaken] <<TODO 36 37 Mandatory Warnings 38 ------------------ 39 Malformed UTF-8 character [sv_pos_b2u] (not tested: difficult to produce 40 with perl now) 41 42 Mandatory Warnings TODO 43 ------------------ 44 Attempt to free non-arena SV: 0x%lx [del_sv] 45 Reference miscount in sv_replace() [sv_replace] 46 Attempt to free unreferenced scalar [sv_free] 47 Attempt to free temp prematurely: SV 0x%lx [sv_free] 48 semi-panic: attempt to dup freed string [newSVsv] 49 50 51__END__ 52# sv.c 53use integer ; 54use warnings 'uninitialized' ; 55$x = 1 + $a[0] ; # a 56no warnings 'uninitialized' ; 57$x = 1 + $b[0] ; # a 58EXPECT 59Use of uninitialized value $a[0] in integer addition (+) at - line 4. 60######## 61# sv.c (sv_2iv) 62package fred ; 63sub TIESCALAR { my $x ; bless \$x} 64sub FETCH { return undef } 65sub STORE { return 1 } 66package main ; 67tie $A, 'fred' ; 68use integer ; 69use warnings 'uninitialized' ; 70$A *= 2 ; 71no warnings 'uninitialized' ; 72$A *= 2 ; 73EXPECT 74Use of uninitialized value $A in integer multiplication (*) at - line 10. 75######## 76# sv.c 77use integer ; 78use warnings 'uninitialized' ; 79my $x *= 2 ; #b 80no warnings 'uninitialized' ; 81my $y *= 2 ; #b 82EXPECT 83Use of uninitialized value $x in integer multiplication (*) at - line 4. 84######## 85# sv.c (sv_2uv) 86package fred ; 87sub TIESCALAR { my $x ; bless \$x} 88sub FETCH { return undef } 89sub STORE { return 1 } 90package main ; 91tie $A, 'fred' ; 92use warnings 'uninitialized' ; 93$B = 0 ; 94$B |= $A ; 95no warnings 'uninitialized' ; 96$B = 0 ; 97$B |= $A ; 98EXPECT 99Use of uninitialized value $A in bitwise or (|) at - line 10. 100######## 101# sv.c 102use warnings 'uninitialized' ; 103my $Y = 1 ; 104my $x = 1 | $a[$Y] ; 105no warnings 'uninitialized' ; 106my $Y = 1 ; 107$x = 1 | $b[$Y] ; 108EXPECT 109Use of uninitialized value within @a in bitwise or (|) at - line 4. 110######## 111# sv.c 112use warnings 'uninitialized' ; 113my $Y = 1 ; 114my $x = 1 & $a[$Y] ; 115no warnings 'uninitialized' ; 116my $Y = 1 ; 117$x = 1 & $b[$Y] ; 118EXPECT 119Use of uninitialized value within @a in bitwise and (&) at - line 4. 120######## 121# sv.c 122use warnings 'uninitialized' ; 123my $Y = 1 ; 124my $x = ~$a[$Y] ; 125no warnings 'uninitialized' ; 126my $Y = 1 ; 127$x = ~$b[$Y] ; 128EXPECT 129Use of uninitialized value within @a in 1's complement (~) at - line 4. 130######## 131# sv.c 132use warnings 'uninitialized' ; 133my $x *= 1 ; # d 134no warnings 'uninitialized' ; 135my $y *= 1 ; # d 136EXPECT 137Use of uninitialized value $x in multiplication (*) at - line 3. 138######## 139# sv.c 140use warnings 'uninitialized' ; 141$x = 1 + $a[0] ; # e 142no warnings 'uninitialized' ; 143$x = 1 + $b[0] ; # e 144EXPECT 145Use of uninitialized value $a[0] in addition (+) at - line 3. 146######## 147# sv.c (sv_2nv) 148package fred ; 149sub TIESCALAR { my $x ; bless \$x} 150sub FETCH { return undef } 151sub STORE { return 1 } 152package main ; 153tie $A, 'fred' ; 154use warnings 'uninitialized' ; 155$A *= 2 ; 156no warnings 'uninitialized' ; 157$A *= 2 ; 158EXPECT 159Use of uninitialized value $A in multiplication (*) at - line 9. 160######## 161# sv.c 162use warnings 'uninitialized' ; 163$x = $y + 1 ; # f 164no warnings 'uninitialized' ; 165$x = $z + 1 ; # f 166EXPECT 167Use of uninitialized value $y in addition (+) at - line 3. 168######## 169# sv.c 170use warnings 'uninitialized' ; 171$x = chop undef ; # g 172no warnings 'uninitialized' ; 173$x = chop undef ; # g 174EXPECT 175Modification of a read-only value attempted at - line 3. 176######## 177# sv.c 178use warnings 'uninitialized' ; 179$x = chop $y ; # h 180no warnings 'uninitialized' ; 181$x = chop $z ; # h 182EXPECT 183Use of uninitialized value $y in scalar chop at - line 3. 184######## 185# sv.c (sv_2pv) 186package fred ; 187sub TIESCALAR { my $x ; bless \$x} 188sub FETCH { return undef } 189sub STORE { return 1 } 190package main ; 191tie $A, 'fred' ; 192use warnings 'uninitialized' ; 193$B = "" ; 194$B .= $A ; 195no warnings 'uninitialized' ; 196$C = "" ; 197$C .= $A ; 198EXPECT 199Use of uninitialized value $A in concatenation (.) or string at - line 10. 200######## 201# perlbug 20011116.125 202use warnings 'uninitialized'; 203$a = undef; 204$foo = join '', $a, "\n"; 205$foo = "$a\n"; 206$foo = "a:$a\n"; 207EXPECT 208Use of uninitialized value $a in join or string at - line 4. 209Use of uninitialized value $a in concatenation (.) or string at - line 5. 210Use of uninitialized value $a in concatenation (.) or string at - line 6. 211######## 212# sv.c 213use warnings 'numeric' ; 214sub TIESCALAR{bless[]} ; 215sub FETCH {"def"} ; 216tie $a,"main" ; 217my $b = 1 + $a; 218no warnings 'numeric' ; 219my $c = 1 + $a; 220EXPECT 221Argument "def" isn't numeric in addition (+) at - line 6. 222######## 223# sv.c 224use warnings 'numeric' ; 225my $x = 1 + "def" ; 226no warnings 'numeric' ; 227my $z = 1 + "def" ; 228EXPECT 229Argument "def" isn't numeric in addition (+) at - line 3. 230######## 231# sv.c 232use warnings 'numeric' ; 233my $a = "def" ; 234my $x = 1 + $a ; 235no warnings 'numeric' ; 236my $y = 1 + $a ; 237EXPECT 238Argument "def" isn't numeric in addition (+) at - line 4. 239######## 240# sv.c 241use warnings 'numeric' ; use integer ; 242my $a = "def" ; 243my $x = 1 + $a ; 244no warnings 'numeric' ; 245my $z = 1 + $a ; 246EXPECT 247Argument "def" isn't numeric in integer addition (+) at - line 4. 248######## 249# sv.c 250use warnings 'numeric' ; 251my $x = 1 & "def" ; 252no warnings 'numeric' ; 253my $z = 1 & "def" ; 254EXPECT 255Argument "def" isn't numeric in bitwise and (&) at - line 3. 256######## 257# sv.c 258use warnings 'numeric' ; 259my $x = pack i => "def" ; 260no warnings 'numeric' ; 261my $z = pack i => "def" ; 262EXPECT 263Argument "def" isn't numeric in pack at - line 3. 264######## 265# sv.c 266use warnings 'numeric' ; 267my $a = "d\0f" ; 268my $x = 1 + $a ; 269no warnings 'numeric' ; 270my $z = 1 + $a ; 271EXPECT 272Argument "d\0f" isn't numeric in addition (+) at - line 4. 273######## 274# sv.c 275use warnings 'redefine' ; 276sub fred {} 277sub joe {} 278*fred = \&joe ; 279no warnings 'redefine' ; 280sub jim {} 281*jim = \&joe ; 282EXPECT 283Subroutine main::fred redefined at - line 5. 284######## 285# sv.c 286use warnings 'printf' ; 287open F, ">".($^O eq 'VMS'? 'NL:' : '/dev/null') ; 288printf F "%z\n" ; 289my $a = sprintf "%z" ; 290printf F "%" ; 291$a = sprintf "%" ; 292printf F "%\x02" ; 293$a = sprintf "%\x02" ; 294no warnings 'printf' ; 295printf F "%z\n" ; 296$a = sprintf "%z" ; 297printf F "%" ; 298$a = sprintf "%" ; 299printf F "%\x02" ; 300$a = sprintf "%\x02" ; 301EXPECT 302Invalid conversion in printf: "%z" at - line 4. 303Invalid conversion in sprintf: "%z" at - line 5. 304Invalid conversion in printf: end of string at - line 6. 305Invalid conversion in sprintf: end of string at - line 7. 306Invalid conversion in printf: "%\002" at - line 8. 307Invalid conversion in sprintf: "%\002" at - line 9. 308######## 309# sv.c 310use warnings 'misc' ; 311*a = undef ; 312no warnings 'misc' ; 313*b = undef ; 314EXPECT 315Undefined value assigned to typeglob at - line 3. 316######## 317# sv.c 318use warnings 'numeric' ; 319$a = "\x{100}\x{200}" * 42; 320no warnings 'numeric' ; 321$a = "\x{100}\x{200}" * 42; 322EXPECT 323Argument "\x{100}\x{200}" isn't numeric in multiplication (*) at - line 3. 324######## 325# sv.c 326use warnings 'numeric' ; 327$a = "\x{100}\x{200}"; $a = -$a; 328no warnings 'numeric' ; 329$a = "\x{100}\x{200}"; $a = -$a; 330EXPECT 331Argument "\x{100}\x{200}" isn't numeric in negation (-) at - line 3. 332