  pp.c	TODO

  substr outside of string
    $a = "ab" ; $a = substr($a, 4,5)

  Attempt to use reference as lvalue in substr 
    $a = "ab" ; $b = \$a ;  substr($b, 1,1) = $b

  uninitialized	in pp_rv2gv()
	my *b = *{ undef()}

  uninitialized	in pp_rv2sv()
	my $a = undef ; my $b = $$a

  Odd number of elements in hash list
	my $a = { 1,2,3 } ;

  Invalid type in unpack: '%c
	my $A = pack ("A,A", 1,2) ;
	my @A = unpack ("A,A", "22") ;

  Attempt to pack pointer to temporary value
	pack("p", "abc") ;

  Explicit blessing to '' (assuming package main)
	bless \[], "";

  Constant subroutine %s undefined			<<<
  Constant subroutine (anonymous) undefined		<<<

__END__
# pp.c
use warning 'substr' ;
$a = "ab" ; 
$a = substr($a, 4,5)
EXPECT
substr outside of string at - line 4.
########
# pp.c
use warning 'substr' ;
$a = "ab" ; 
$b = \$a ;  
substr($b, 1,1) = "ab" ;
EXPECT
Attempt to use reference as lvalue in substr at - line 5.
########
# pp.c
use warning 'uninitialized' ;
# TODO
EXPECT

########
# pp.c
use warning 'unsafe' ;
my $a = { 1,2,3};
EXPECT
Odd number of elements in hash assignment at - line 3.
########
# pp.c
use warning 'unsafe' ;
my @a = unpack ("A,A", "22") ;
my $a = pack ("A,A", 1,2) ;
EXPECT
Invalid type in unpack: ',' at - line 3.
Invalid type in pack: ',' at - line 4.
########
# pp.c
use warning 'uninitialized' ;
my $a = undef ; 
my $b = $$a
EXPECT
Use of uninitialized value at - line 4.
########
# pp.c
use warning 'unsafe' ;
sub foo { my $a = "a"; return $a . $a++ . $a++ }
my $a = pack("p", &foo) ;
EXPECT
Attempt to pack pointer to temporary value at - line 4.
########
# pp.c
use warning 'unsafe' ;
bless \[], "" ;
EXPECT
Explicit blessing to '' (assuming package main) at - line 3.
