comp.lang.ada
 help / color / mirror / Atom feed
From: Samuel Tardieu <sam@rfc1149.net>
Subject: Re: Importing C structs?
Date: Thu, 31 Jul 2003 22:17:59 +0200
Date: 2003-07-31T22:17:59+02:00	[thread overview]
Message-ID: <87wudy4fig.fsf@inf.enst.fr> (raw)
In-Reply-To: x7vispi4id6.fsf@smaug.pushface.org

>>>>> "Simon" == Simon Wright <simon@pushface.org> writes:

Simon> I'm pretty sure GNAT will do the Right Thing here (ie pass the
Simon> address of the record parameter). I suppose there might be
Simon> problems with very small arrays on architectures where these
Simon> are passed in registers? but since the Ada and C compilers have
Simon> the same backend you are quite likely to be lucky. pragma
Simon> Convention (C, ) means "do what the C compiler expects", after
Simon> all.

Not exactly, but quite. The RM suggests that any record be passed by
reference, while on most platforms small records (not greater than a
word) are expected on the stack or in a register.

GNAT follows the RM suggestion but allows you to override this choice
by applying pragma Pass_By_Copy (GNAT specific) to your record type.

  Sam
-- 
Samuel Tardieu -- sam@rfc1149.net -- http://www.rfc1149.net/sam



  reply	other threads:[~2003-07-31 20:17 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-30 20:03 Importing C structs? Freejack
2003-07-30 20:52 ` chris
2003-07-30 21:26   ` Freejack
2003-07-30 23:50   ` tmoran
2003-07-31 10:53     ` chris
2003-08-04 14:33     ` Andreas Almroth
2003-08-04 15:16       ` Samuel Tardieu
2003-08-04 20:07         ` Randy Brukardt
2003-07-31 17:14   ` Warren W. Gay VE3WWG
2003-08-12  0:02     ` chris
2003-07-31 18:17   ` Xenos
2003-07-31 19:16     ` Simon Wright
2003-07-31 20:17       ` Samuel Tardieu [this message]
2003-07-31 20:40       ` Xenos
2003-07-30 23:14 ` Ching Bon Lam
2003-07-31  0:07   ` tmoran
2003-07-31  5:35   ` Matthew Heaney
2003-07-31  7:46     ` Freejack
2003-07-31  9:27       ` Martin Dowie
2003-07-31 21:41         ` Freejack
2003-08-01  7:39           ` Martin Dowie
2003-07-31 17:34       ` Matthew Heaney
2003-07-31 11:29     ` Ching Bon Lam
2003-07-31 16:59       ` Matthew Heaney
2003-07-31 17:32         ` Warren W. Gay VE3WWG
2003-07-31 17:13       ` Matthew Heaney
2003-07-31 17:40       ` Randy Brukardt
2003-07-31  5:21 ` Matthew Heaney
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox