blob: 87d43e8ffc1897bc211e332c5d3b9525875dfed7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
util.c AOK
Illegal octal digit ignored
my $a = oct "029" ;
Illegal hexadecimal digit ignored
my $a = hex "0xv9" ;
Illegal binary digit ignored
my $a = oct "0b9" ;
Mandatory Warnings
------------------
Integer overflow in binary number
Integer overflow in octal number
Integer overflow in hex number
__END__
# util.c
use warning 'octal' ;
my $a = oct "029" ;
no warning 'octal' ;
my $b = oct "029" ;
EXPECT
Illegal octal digit '9' ignored at - line 3.
########
# util.c
use warning 'unsafe' ;
*a = hex "0xv9" ;
no warning 'unsafe' ;
*a = hex "0xv9" ;
EXPECT
Illegal hexadecimal digit 'v' ignored at - line 3.
########
# util.c
use warning 'unsafe' ;
*a = oct "0b9" ;
no warning 'unsafe' ;
*a = oct "0b9" ;
EXPECT
Illegal binary digit '9' ignored at - line 3.
########
# util.c
$^W = 1 ;
sub make_bin { "1" x $_[0] }
$n = make_bin(33);
{
use warning 'unsafe' ;
my $a = oct "0b$n" ;
no warning 'unsafe' ;
my $b = oct "0b$n" ;
}
my $c = oct "0b$n" ;
EXPECT
Binary number > 0b11111111111111111111111111111111 non-portable at - line 7.
Binary number > 0b11111111111111111111111111111111 non-portable at - line 11.
########
# util.c
$^W = 1 ;
sub make_oct { ("","1","3")[$_[0]%3] . "7" x int($_[0]/3) }
$n = make_oct(33);
{
use warning 'unsafe' ;
my $a = oct "$n" ;
no warning 'unsafe' ;
my $b = oct "$n" ;
}
my $c = oct "$n" ;
EXPECT
Octal number > 037777777777 non-portable at - line 7.
Octal number > 037777777777 non-portable at - line 11.
########
# util.c
$^W = 1 ;
sub make_hex { ("","1","3","7")[$_[0]%4] . "f" x int($_[0]/4) }
$n = make_hex(33);
{
use warning 'unsafe' ;
my $a = hex "$n" ;
no warning 'unsafe' ;
my $b = hex "$n" ;
}
my $c = hex "$n" ;
EXPECT
Hexadecimal number > 0xffffffff non-portable at - line 7.
Hexadecimal number > 0xffffffff non-portable at - line 11.
|