Sender: rich AT phekda DOT freeserve DOT co DOT uk Message-ID: <3EAE2E30.A6C01D94@phekda.freeserve.co.uk> Date: Tue, 29 Apr 2003 08:48:00 +0100 From: Richard Dawe X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.23 i586) X-Accept-Language: de,fr MIME-Version: 1.0 To: Ben Peddell CC: DJGPP newsgroup Subject: Re: Bug 00314 -- div() still broken References: <3e9c6920$0$21928$afc38c87@> <3EA5477F DOT 2020901 AT cyberoptics DOT com> <3ea85d95$0$12489$4c41069e AT reader1 DOT ash DOT ops DOT us DOT uu DOT net> <3ea97d4c$0$19415$4c41069e AT reader1 DOT ash DOT ops DOT us DOT uu DOT net> <3EABC30B DOT 40106 AT bigpond DOT com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello. Ben Peddell wrote: > > Richard Dawe wrote: [snip] > > I've just looked at the gcc 2.95.2 sources and it looks like > > -fpcc-struct-return (i.e.: use memory) is the default there. > > > > The gcc 3.2.2 source seems to default to using registers. See the end > > gcc/config/i386/djgpp.h: > > > > /* Don't default to pcc-struct-return, because gcc is the only > > compiler, > > and we want to retain compatibility with older gcc versions. */ > > #define DEFAULT_PCC_STRUCT_RETURN 0 > > I wonder where they got that from? Andris copied them from the configuration file for another i386 platform. > Did they accidentally put that in the wrong target? What systems default > to structures in registers? Watch for ABI bugs of this sort in them. FreeBSD, Cygwin default to using registers. Linux, NetBSD ELF don't. > GCC 3.2 still had structures in memory, and it is supposed to have had > an ABI change from the previous GCCs. [snip] Which ABI? The C++ ABI changed between gcc 2.x and 3.x. It also changed later in the gcc 3.x, because bugs were fixed in early versions of gcc 3.x, which changed the ABI (for the better). I thought the C ABI was set in stone. Bye, Rich =] -- Richard Dawe [ http://www.phekda.freeserve.co.uk/richdawe/ ]