Daniel Berlin wrote:
>> It's a field in the class$ structure.  class$ is initialized by creating a
>> CONSTRUCTOR tree and calling CONSTRUCTOR_APPEND_ELT for each field.  The
>> DECL_INITIAL of class$ points to the CONSTRUCTOR tree.
>>
>> _CD_pp is an array of void*.  These are initialized by DECL_INITIAL too.
>>
>> InitClass is passed class$$ (not class$) and that has a DECL_INITIAL
>> that points to class$.  As far as I can tell all the types are correct.
>>
> 
> If class$$ has an initial of &class$ which has an initial (in it
> somewhere) of CD_ppp it should definitely be noticing.
> It used to walk these all and get it right, AFAIK, by disqualifying
> all variables with their addresses taken (or escaping the function
> unit).
> Maybe the walking broke when we moved to tuples or something?

Maybe.  I'm going to write some equivalent code in C and see what
happens.

Andrew.

Reply via email to