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" ; 294printf F "%llz" ; 295$a = sprintf "%llz" ; 296printf F "%25llz" ; 297$a = sprintf "%25llz" ; 298printf F "%+2Lz" ; 299$a = sprintf "%+2Lz" ; 300printf F "%+2ll" ; 301$a = sprintf "%+2ll" ; 302printf F "%+2L\x03" ; 303$a = sprintf "%+2L\x03" ; 304no warnings 'printf' ; 305printf F "%z\n" ; 306$a = sprintf "%z" ; 307printf F "%" ; 308$a = sprintf "%" ; 309printf F "%\x02" ; 310$a = sprintf "%\x02" ; 311printf F "%llz" ; 312$a = sprintf "%llz" ; 313printf F "%25llz" ; 314$a = sprintf "%25llz" ; 315printf F "%+2Lz" ; 316$a = sprintf "%+2Lz" ; 317printf F "%+2ll" ; 318$a = sprintf "%+2ll" ; 319printf F "%+2L\x03" ; 320$a = sprintf "%+2L\x03" ; 321EXPECT 322Invalid conversion in printf: "%z" at - line 4. 323Invalid conversion in sprintf: "%z" at - line 5. 324Invalid conversion in printf: end of string at - line 6. 325Invalid conversion in sprintf: end of string at - line 7. 326Invalid conversion in printf: "%\002" at - line 8. 327Invalid conversion in sprintf: "%\002" at - line 9. 328Invalid conversion in printf: "%llz" at - line 10. 329Invalid conversion in sprintf: "%llz" at - line 11. 330Invalid conversion in printf: "%25llz" at - line 12. 331Invalid conversion in sprintf: "%25llz" at - line 13. 332Invalid conversion in printf: "%+2Lz" at - line 14. 333Invalid conversion in sprintf: "%+2Lz" at - line 15. 334Invalid conversion in printf: "%+2ll" at - line 16. 335Invalid conversion in sprintf: "%+2ll" at - line 17. 336Invalid conversion in printf: "%+2L\003" at - line 18. 337Invalid conversion in sprintf: "%+2L\003" at - line 19. 338######## 339# sv.c 340use warnings 'misc' ; 341*a = undef ; 342no warnings 'misc' ; 343*b = undef ; 344EXPECT 345Undefined value assigned to typeglob at - line 3. 346######## 347# sv.c 348use warnings 'numeric' ; 349$a = "\x{100}\x{200}" * 42; 350no warnings 'numeric' ; 351$a = "\x{100}\x{200}" * 42; 352EXPECT 353Argument "\x{100}\x{200}" isn't numeric in multiplication (*) at - line 3. 354######## 355# sv.c 356use warnings 'numeric' ; 357$a = "\x{100}\x{200}"; $a = -$a; 358no warnings 'numeric' ; 359$a = "\x{100}\x{200}"; $a = -$a; 360EXPECT 361Argument "\x{100}\x{200}" isn't numeric in negation (-) at - line 3. 362