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