This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
rename t/pragma/warn-* to t/pragma/warn/*, be 8.3-friendly
[perl5.git] / t / pragma / warn / sv
1   sv.c  AOK
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
36 __END__
37 # sv.c
38 use integer ;
39 use warning 'uninitialized' ;
40 $x = 1 + $a[0] ; # a
41 EXPECT
42 Use of uninitialized value at - line 4.
43 ########
44 # sv.c (sv_2iv)
45 package fred ;
46 sub TIESCALAR { my $x ; bless \$x}
47 sub FETCH { return undef }
48 sub STORE { return 1 }
49 package main ;
50 tie $A, 'fred' ;
51 use integer ;
52 use warning 'uninitialized' ;
53 $A *= 2 ;
54 EXPECT
55 Use of uninitialized value at - line 10.
56 ########
57 # sv.c
58 use integer ;
59 use warning 'uninitialized' ;
60 my $x *= 2 ; #b 
61 EXPECT
62 Use of uninitialized value at - line 4.
63 ########
64 # sv.c (sv_2uv)
65 package fred ;
66 sub TIESCALAR { my $x ; bless \$x}
67 sub FETCH { return undef }
68 sub STORE { return 1 }
69 package main ;
70 tie $A, 'fred' ;
71 use warning 'uninitialized' ;
72 $B = 0 ;
73 $B |= $A ;
74 EXPECT
75 Use of uninitialized value at - line 10.
76 ########
77 # sv.c
78 use warning 'uninitialized' ;
79 my $Y = 1 ; 
80 my $x = 1 | $a[$Y]
81 EXPECT
82 Use of uninitialized value at - line 4.
83 ########
84 # sv.c
85 use warning 'uninitialized' ;
86 my $x *= 1 ; # d
87 EXPECT
88 Use of uninitialized value at - line 3.
89 ########
90 # sv.c
91 use warning 'uninitialized' ;
92 $x = 1 + $a[0] ; # e
93 EXPECT
94 Use of uninitialized value at - line 3.
95 ########
96 # sv.c (sv_2nv)
97 package fred ;
98 sub TIESCALAR { my $x ; bless \$x}
99 sub FETCH { return undef }
100 sub STORE { return 1 }
101 package main ;
102 tie $A, 'fred' ;
103 use warning 'uninitialized' ;
104 $A *= 2 ;
105 EXPECT
106 Use of uninitialized value at - line 9.
107 ########
108 # sv.c
109 use warning 'uninitialized' ;
110 $x = $y + 1 ; # f
111 EXPECT
112 Use of uninitialized value at - line 3.
113 ########
114 # sv.c
115 use warning 'uninitialized' ;
116 $x = chop undef ; # g
117 EXPECT
118 Use of uninitialized value at - line 3.
119 ########
120 # sv.c
121 use warning 'uninitialized' ;
122 $x = chop $y ; # h
123 EXPECT
124 Use of uninitialized value at - line 3.
125 ########
126 # sv.c (sv_2pv)
127 package fred ;
128 sub TIESCALAR { my $x ; bless \$x}
129 sub FETCH { return undef }
130 sub STORE { return 1 }
131 package main ;
132 tie $A, 'fred' ;
133 use warning 'uninitialized' ;
134 $B = "" ;
135 $B .= $A ;
136 EXPECT
137 Use of uninitialized value at - line 10.
138 ########
139 # sv.c 
140 use warning 'numeric' ;
141 sub TIESCALAR{bless[]} ; 
142 sub FETCH {"def"} ; 
143 tie $a,"main" ; 
144 my $b = 1 + $a
145 EXPECT
146 Argument "def" isn't numeric in add at - line 6.
147 ########
148 # sv.c
149 use warning 'numeric' ;
150 my $x = 1 + "def" ;
151 EXPECT
152 Argument "def" isn't numeric in add at - line 3.
153 ########
154 # sv.c
155 use warning 'numeric' ;
156 my $a = "def" ;
157 my $x = 1 + $a ;
158 EXPECT
159 Argument "def" isn't numeric in add at - line 4.
160 ########
161 # sv.c
162 use warning 'numeric' ; use integer ;
163 my $a = "def" ;
164 my $x = 1 + $a ;
165 EXPECT
166 Argument "def" isn't numeric in i_add at - line 4.
167 ########
168 # sv.c
169 use warning 'numeric' ;
170 my $x = 1 & "def" ;
171 EXPECT
172 Argument "def" isn't numeric in bit_and at - line 3.
173 ########
174 # sv.c
175 use warning 'redefine' ;
176 sub fred {}  
177 sub joe {} 
178 *fred = \&joe ;
179 EXPECT
180 Subroutine fred redefined at - line 5.
181 ########
182 # sv.c
183 use warning 'printf' ;
184 open F, ">/dev/null" ;
185 printf F "%q\n" ;
186 my $a = sprintf "%q" ;
187 printf F "%" ;
188 $a = sprintf "%" ;
189 printf F "%\x02" ;
190 $a = sprintf "%\x02" ;
191 EXPECT
192 Invalid conversion in sprintf: "%q" at - line 5.
193 Invalid conversion in sprintf: end of string at - line 7.
194 Invalid conversion in sprintf: "%\002" at - line 9.
195 Invalid conversion in printf: "%q" at - line 4.
196 Invalid conversion in printf: end of string at - line 6.
197 Invalid conversion in printf: "%\002" at - line 8.
198 ########
199 # sv.c
200 use warning 'unsafe' ;
201 *a = undef ;
202 EXPECT
203 Undefined value assigned to typeglob at - line 3.