diff options
Diffstat (limited to 't/lib')
-rw-r--r-- | t/lib/warnings/9uninit | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/t/lib/warnings/9uninit b/t/lib/warnings/9uninit index c1a1dfcfc6..d26d6ca0ba 100644 --- a/t/lib/warnings/9uninit +++ b/t/lib/warnings/9uninit @@ -2091,3 +2091,80 @@ tie $t, ""; $v = 1.1 * $t; # sv_2nv on a tied regexp EXPECT +######## +# multi-level uninitialised array/hash indexes +use warnings 'uninitialized'; + +our ($i0, $i2, $i4, $i6, $i8, $i10, $i12); +my ($i1, $i3, $i5, $i7, $i9, $i11, $i13); + +my (@a,%h); +my $v; + + +# use enough depth that OP_MULTIDEREF needs more than one action word + +$v = $a[$i0]{$i1}[$i2]{$i3}[$i4]{$i5}[$i6]{$i7}[$i8]{$i9}[$i10]{$i11}[$i12]{$i13}; +$v = $h{$i0}[$i1]{$i2}[$i3]{$i4}[$i5]{$i6}[$i7]{$i8}[$i9]{$i10}[$i11]{$i12}[$i13]; + +EXPECT +Use of uninitialized value $i0 in array element at - line 13. +Use of uninitialized value $i1 in hash element at - line 13. +Use of uninitialized value $i2 in array element at - line 13. +Use of uninitialized value $i3 in hash element at - line 13. +Use of uninitialized value $i4 in array element at - line 13. +Use of uninitialized value $i5 in hash element at - line 13. +Use of uninitialized value $i6 in array element at - line 13. +Use of uninitialized value $i7 in hash element at - line 13. +Use of uninitialized value $i8 in array element at - line 13. +Use of uninitialized value $i9 in hash element at - line 13. +Use of uninitialized value $i10 in array element at - line 13. +Use of uninitialized value $i11 in hash element at - line 13. +Use of uninitialized value $i12 in array element at - line 13. +Use of uninitialized value $i13 in hash element at - line 13. +Use of uninitialized value $i0 in hash element at - line 14. +Use of uninitialized value $i1 in array element at - line 14. +Use of uninitialized value $i2 in hash element at - line 14. +Use of uninitialized value $i3 in array element at - line 14. +Use of uninitialized value $i4 in hash element at - line 14. +Use of uninitialized value $i5 in array element at - line 14. +Use of uninitialized value $i6 in hash element at - line 14. +Use of uninitialized value $i7 in array element at - line 14. +Use of uninitialized value $i8 in hash element at - line 14. +Use of uninitialized value $i9 in array element at - line 14. +Use of uninitialized value $i10 in hash element at - line 14. +Use of uninitialized value $i11 in array element at - line 14. +Use of uninitialized value $i12 in hash element at - line 14. +Use of uninitialized value $i13 in array element at - line 14. +######## +# misc multideref +use warnings 'uninitialized'; +my ($i,$j,$k); +my @a; +my @ra = \@a; +my $v; +$v = exists $a[$i]{$k}; +$v = delete $a[$i]{$k}; +$v = local $a[$i]{$k}; +delete $a[$i]{$k}; +$v = $ra->[$i+$j]{$k}; +$v = ($ra//0)->[$i]{$k}; +$v = $a[length $i]{$k} +EXPECT +Use of uninitialized value $i in array element at - line 7. +Use of uninitialized value $k in exists at - line 7. +Use of uninitialized value $i in array element at - line 8. +Use of uninitialized value $k in delete at - line 8. +Use of uninitialized value $i in array element at - line 9. +Use of uninitialized value $k in hash element at - line 9. +Use of uninitialized value $k in hash element at - line 9. +Use of uninitialized value $k in hash element at - line 9. +Use of uninitialized value $i in array element at - line 10. +Use of uninitialized value $k in delete at - line 10. +Use of uninitialized value $j in addition (+) at - line 11. +Use of uninitialized value $i in addition (+) at - line 11. +Use of uninitialized value $k in hash element at - line 11. +Use of uninitialized value $i in array element at - line 12. +Use of uninitialized value $k in hash element at - line 12. +Use of uninitialized value $i in array element at - line 13. +Use of uninitialized value $k in hash element at - line 13. |