5 public function __construct(
14 function ok_vector_ix(C
$c, Vector
<int> $vector): void
{
15 $vector[] = $c->i
; // Force lump of vector to be I
17 $c->j
= 0; // OK because vector append does not raise an exception
21 function ok_map_extend(C
$c, Map
<string,int> $map): void
{
22 $map['hello'] = $c->i
; // Force lump of vector to be I
24 $c->j
= 0; // OK because map extension does not raise an exception
28 function leak_via_exn(C
$c, Vector
<int> $vector): void
{
29 $vector[0] = $c->i
; // Force lump of vector to be I
31 // There is a flow from PC which is governed by length of vector due to the
32 // conditional exception. The length is governed by the lump policy.
33 $c->j
= 0; // I flows into J