T_sacarg is now similar to T_hidden in that it carries information about the "nested type". SACarg(MAIN::struct_A) now represents a legal type. Whenever we go to the FFI interface, we hand over SACarg(---) types.
DSS replaces all SACarg(MAIN::struct_A) types by their components, but leaves SACarg(---) type intact.
With this MR, sac2c
and sac4c
should at least work. However, to actually pass structs between C and SaC some more work
is needed in generate_generic_type_conversions.c
. While only relatively little more implementation is needed (see TODOs in
BuildUnwrapBody
and in BuildWrapBody
), I expect some more work on the debugging front as these functions create SACarg(---)
from SACarg(MAIN::struct_A)[.] types.....
Along with some more cleanup in sacarginterface.c
this could come in a later MR.