--- Comment #29 from Iain Buclaw <> 2012-06-27 10:02:08 PDT 
(In reply to comment #27)
> (In reply to comment #26)
> > (In reply to comment #25)
> > > Sigh – seems like I was not exactly right about how GDC and LDC are 
> > > handling
> > > arrays. Instead of treating them like the equivalent struct, they are 
> > > treated
> > > as if length and pointer were two separate arguments […]
> > They are created as a two field struct in GDC.
> Oh well, apparently GDC handles dynamic arrays like structs in most cases, but
> as size_t/void* pairs for variadic arguments, ABI-wise – I discovered this
> behavior looking at the generated assembly while working on the LDC vararg 
> ABI,
> and didn't expect formal arguments to be treated differently. Maybe the
> behavior should be unified?

Yes, that is correct for dynamic arrays. :~)

It does it on a condition that's pre-set as 'true' and can't be altered by the
user.  Of course, if all two field types in D (D arrays; delegates) should
*always* be passed in the same way as two field struct should be, then I can
turn it off (and add a switch to toggle it), or remove this code.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to