DATA_TYPE => $e->{TYPE},
IS_DEFERRED => $is_deferred,
CONTAINS_DEFERRED => can_contain_deferred($e->{TYPE}),
- CONTAINS_NON_FIXED => can_contain_non_fixed($e->{TYPE}),
IS_SURROUNDING => 0 #FIXME
});
return 0;
}
-sub can_contain_non_fixed($)
-{
- sub can_contain_non_fixed($);
- my ($type) = @_;
-
- return 1 if can_contain_deferred($type);
-
- $type = getType($type);
-
- return 0 if (is_fixed_size_scalar($type));
-
- return can_contain_non_fixed($type->{DATA}) if ($type->{TYPE} eq "TYPEDEF");
-
- return 0 unless defined($type->{ELEMENTS});
-
- foreach (@{$type->{ELEMENTS}}) {
- return 1 if ($_->{POINTERS});
- return 1 if (can_contain_non_fixed ($_->{TYPE}));
- }
-
- return 0;
-}
sub pointer_type($)
{
my $e = shift;