This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Change t/pragma/warn oct()/hex() overflow tests to use %Config
[perl5.git] / t / pragma / warn / util
CommitLineData
599cee73
PM
1 util.c AOK
2
3 Illegal octal digit ignored
4 my $a = oct "029" ;
5
6 Illegal hex digit ignored
7 my $a = hex "0xv9" ;
8
4f19785b
WSI
9 Illegal binary digit ignored
10 my $a = oct "0b9" ;
599cee73 11
0453d815
PM
12
13 Mandatory Warnings
14 ------------------
15 Integer overflow in binary number
16 Integer overflow in octal number
17 Integer overflow in hex number
18
599cee73
PM
19__END__
20# util.c
21use warning 'octal' ;
22my $a = oct "029" ;
0453d815
PM
23no warning 'octal' ;
24my $a = oct "029" ;
599cee73 25EXPECT
399388f4 26Illegal octal digit '9' ignored at - line 3.
599cee73
PM
27########
28# util.c
29use warning 'unsafe' ;
30*a = hex "0xv9" ;
0453d815
PM
31no warning 'unsafe' ;
32*a = hex "0xv9" ;
599cee73 33EXPECT
651978e7 34Illegal hexadecimal digit 'v' ignored at - line 3.
4f19785b
WSI
35########
36# util.c
37use warning 'unsafe' ;
38*a = oct "0b9" ;
0453d815
PM
39no warning 'unsafe' ;
40*a = oct "0b9" ;
4f19785b 41EXPECT
399388f4 42Illegal binary digit '9' ignored at - line 3.
0453d815
PM
43########
44# util.c
651978e7 45BEGIN { require Config ; import Config }
0453d815 46$^W =1 ;
651978e7
JH
47sub make_bin { "1" x $_[0] }
48$n = make_bin(8 * $Config{longsize} ) ;
49$o = make_bin(8 * $Config{longsize} + 1) ;
0453d815
PM
50{
51 use warning 'unsafe' ;
651978e7
JH
52 my $a = oct "0b$n" ;
53 my $b = oct "0b$o" ;
0453d815 54 no warning 'unsafe' ;
651978e7 55 $b = oct "0b$o" ;
0453d815 56}
651978e7 57my $b = oct "0b$o" ;
0453d815 58EXPECT
651978e7
JH
59Integer overflow in binary number at - line 10.
60Integer overflow in binary number at - line 14.
0453d815
PM
61########
62# util.c
651978e7 63BEGIN { require Config ; import Config }
0453d815 64$^W =1 ;
651978e7
JH
65sub make_oct { ("","1","3")[$_[0]%3] . "7" x int($_[0]/3) }
66$n = make_oct(8 * $Config{longsize} );
67$o = make_oct(8 * $Config{longsize} + 1);
0453d815
PM
68{
69 use warning 'unsafe' ;
651978e7
JH
70 my $a = oct "$n" ;
71 my $b = oct "$o" ;
0453d815 72 no warning 'unsafe' ;
651978e7 73 $b = oct "$o" ;
0453d815 74}
651978e7 75my $b = oct "$o" ;
0453d815 76EXPECT
651978e7
JH
77Integer overflow in octal number at - line 10.
78Integer overflow in octal number at - line 14.
0453d815
PM
79########
80# util.c
651978e7 81BEGIN { require Config ; import Config }
0453d815 82$^W =1 ;
651978e7
JH
83sub make_hex { ("","1","3","7")[$_[0]%4] . "f" x int($_[0]/4) }
84$n = make_hex(8 * $Config{longsize} ) ;
85$o = make_hex(8 * $Config{longsize} + 1) ;
0453d815
PM
86{
87 use warning 'unsafe' ;
651978e7
JH
88 my $a = hex "$n" ;
89 my $b = hex "$o" ;
0453d815 90 no warning 'unsafe' ;
651978e7 91 $b = hex "$o" ;
0453d815 92}
651978e7 93my $b = hex "$o" ;
0453d815 94EXPECT
651978e7
JH
95Integer overflow in hexadecimal number at - line 10.
96Integer overflow in hexadecimal number at - line 14.
0453d815 97