Hi Dale, thanks for fixing this.

> +/// FixBaseClassFields - alter the types referred to by Field nodes that

Do you really have to modify the fields of the record?  Instead, you could
have a map in ConvertRECORD (possibly in StructTypeConversionInfo) that gives
the type to use for each field [currently you use the record as the map, 
stashing
the new type there] or just calculate the type in ConvertRECORD and pass the 
type
as an extra parameter to all subroutines or somesuch.

Alternatively, couldn't you just convert the original field type to LLVM then 
drop
fields off the end of the LLVM type if they go over the DECL_SIZE, or something
along those lines?

> +        TREE_INT_CST_LOW(DECL_SIZE(Field)) < 
> +              TREE_INT_CST_LOW(TYPE_SIZE(TREE_TYPE(Field))))

This probably kills Ada (testing now), since the size doesn't have to be
a constant in general (likewise in RestoreBaseClassFields).

Ciao,

Duncan.
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to