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