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] < "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 ; (*c) = (); no warnings 'misc' ; *b = undef ; (*d) = (); EXPECT Undefined value assigned to typeglob at - line 3. Undefined value assigned to typeglob at - line 4. ######## # 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 'numeric' ; $a = "\x{100}\x{1000}" x 10; $b = $a < 1; no warnings 'numeric' ; $a = "\x{100}\x{1000}" x 10; $b = $a < 1; EXPECT Argument "\x{100}\x{1000}\x{100}\x{1000}\x{100}..." isn't numeric in numeric lt (<) 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 my $x = "a_c"; ++$x; use warnings "numeric"; $x = "a_c"; ++$x; $x = ${ qr/abc/ }; ++$x; $x = "123x"; ++$x; $x = "123e"; ++$x; $x = 0; ++$x; # none of these should warn $x = "ABC"; ++$x; $x = "ABC123"; ++$x; $x = " +10"; ++$x; EXPECT Argument "a_c" isn't numeric in preincrement (++) at - line 5. Argument "(?^:abc)" isn't numeric in preincrement (++) at - line 6. Argument "123x" isn't numeric in preincrement (++) at - line 7. Argument "123e" isn't numeric in preincrement (++) at - line 8. ######## # RT #128257 This used to SEGV use warnings; sub Foo::f {} undef *Foo::; *Foo::f =sub {}; EXPECT Subroutine f redefined at - line 5.