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