From: Jeffrey Creem <jeff@thecreems.com>
Subject: Re: Any way of persuading GNAT/GCC to implement a true overlay and not a pointer?
Date: Sat, 01 Apr 2006 15:01:14 -0500
Date: 2006-04-01T15:01:14-05:00 [thread overview]
Message-ID: <to23g3-laq.ln1@newserver.thecreems.com> (raw)
In-Reply-To: <I-CdncDukPveWbPZRVnyiw@pipex.net>
Doobs wrote:
> "Doobs" <doobs@doobs.com> wrote in message
> news:SdmdndA2Z9jbI7PZnZ2dnUVZ8qWdnZ2d@pipex.net...
>
>>"Florian Weimer" <fw@deneb.enyo.de> wrote in message
>>news:87odzl5ilt.fsf@mid.deneb.enyo.de...
>>
>>>>I was under the impression that code of the following form :
>>>>
>>>>X : <Some Type>;
>>>>Y : <Some Type>;
>>>>for Y'Address use X'Address;
>>>>
>>>>would result in an overlay in the resulting code.
>>>
>>>Could you show some more code? Probably initialization is causing
>>>your problems, which can be fixed with a pragma Import.
>>
>>The following is an example of the problem:
>>
>>package TestPackage
>>is
>>
>> type MyRecordType is
>> record
>> element1 : Positive;
>> element2 : Positive;
>> end record;
>>
>> type MyArrayType is array(1..2) of Positive;
>>
>> myX : MyRecordType;
>> pragma volatile(myX);
>> myY : MyArrayType;
>> pragma volatile(myY);
>> for myY'Address use myX'Address;
>>
>>
>>end TestPackage;
>>
>>The following fragments of the resulting MAP file (GCC 3.4.2 mingw32) show
>>the problem...
>>
>>.data 0x00472b00 0x10 ./testpackage.o
>> 0x00472b00 testpackage__myy
>>.data 0x00472b10 0x10 ./nextpackage.o
>>
>><..... later in the file...>
>>
>>COMMON 0x004a2770 0x20 ./testpackage.o
>> 0x004a2770 testpackage__myx
>> 0x004a2780 testpackage_E
>>
>>
>>Clearly myX and myY do NOT share the same address. I am also puzzled as
>>to why the variables have been put in differen memory sections...
>>
>
> Note that including a pragma import did NOT solve the problem - the code
> looked like this
>
> myX : MyRecordType;
> pragma volatile(myX);
> myY : MyArrayType;
> pragma volatile(myY);
> for myY'Address use myX'Address;
> pragma Import (Ada, myY);
>
>
> But the map file exhibited the same problem as before.
>
>
Try this.
package TestPackage
is
type MyRecordType is
record
element1 : Positive;
element2 : Positive;
end record;
type MyArrayType is array(1..2) of Positive;
myX : MyRecordType;
pragma Volatile(Myx);
Pragma Export(Ada, Myx, "MyX");
myY : MyArrayType;
pragma Volatile(Myy);
pragma Import(Ada, Myy, "MyX");
end TestPackage;
Not sure exactly what your end desired result is but assuming you really
need to do this then perhaps this works.
next prev parent reply other threads:[~2006-04-01 20:01 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-01 13:47 Any way of persuading GNAT/GCC to implement a true overlay and not a pointer? Doobs
2006-04-01 14:33 ` Jeffrey Creem
2006-04-01 16:52 ` Doobs
2006-04-01 17:56 ` Martin Krischik
2006-04-01 18:04 ` Dmitry A. Kazakov
2006-04-01 17:08 ` Florian Weimer
2006-04-01 17:54 ` Doobs
2006-04-01 18:19 ` Doobs
2006-04-01 20:01 ` Jeffrey Creem [this message]
2006-04-01 21:33 ` Doobs
2006-04-03 12:25 ` Gerd
2006-04-01 20:57 ` Dmitry A. Kazakov
2006-04-04 1:23 ` Randy Brukardt
2006-04-10 1:42 ` Justin Gombos
2006-04-10 20:12 ` Randy Brukardt
2006-04-11 13:54 ` Making money on open source, if not by selling _support_, then how? Marc A. Criley
2006-04-11 15:13 ` Justin Gombos
2006-04-11 16:22 ` Dmitry A. Kazakov
2006-04-11 17:56 ` Justin Gombos
2006-04-11 18:38 ` Georg Bauhaus
2006-04-12 13:59 ` Justin Gombos
2006-04-12 14:39 ` Georg Bauhaus
2006-04-15 19:33 ` Justin Gombos
2006-04-12 17:07 ` Larry Kilgallen
2006-04-13 3:16 ` Justin Gombos
2006-04-11 19:59 ` Randy Brukardt
2006-04-11 20:18 ` Ed Falis
2006-04-12 14:10 ` Justin Gombos
2006-04-12 20:57 ` Randy Brukardt
2006-04-15 20:37 ` Justin Gombos
2006-04-18 0:24 ` Randy Brukardt
2006-04-18 16:02 ` Justin Gombos
2006-04-12 19:27 ` Martin Dowie
2006-04-12 8:32 ` Dmitry A. Kazakov
2006-04-12 11:23 ` Georg Bauhaus
2006-04-12 15:34 ` Dmitry A. Kazakov
2006-04-12 17:11 ` Georg Bauhaus
2006-04-12 19:37 ` Dmitry A. Kazakov
2006-04-12 21:56 ` Georg Bauhaus
2006-04-13 9:17 ` Dmitry A. Kazakov
2006-04-13 14:18 ` Georg Bauhaus
2006-04-14 10:01 ` Dmitry A. Kazakov
2006-04-14 12:55 ` Georg Bauhaus
2006-04-15 10:13 ` Dmitry A. Kazakov
2006-04-15 18:07 ` Georg Bauhaus
2006-04-13 2:58 ` Justin Gombos
2006-04-13 9:17 ` Dmitry A. Kazakov
2006-04-15 21:17 ` Justin Gombos
2006-04-16 10:53 ` Dmitry A. Kazakov
2006-04-16 13:03 ` Georg Bauhaus
2006-04-16 17:59 ` Dmitry A. Kazakov
2006-04-16 20:53 ` Georg Bauhaus
2006-04-17 9:16 ` Dmitry A. Kazakov
2006-04-19 20:38 ` Justin Gombos
2006-04-20 18:01 ` Dmitry A. Kazakov
2006-04-18 0:29 ` Randy Brukardt
2006-04-16 14:55 ` Justin Gombos
2006-04-16 17:59 ` Dmitry A. Kazakov
2006-04-19 18:17 ` Justin Gombos
2006-04-20 18:07 ` Dmitry A. Kazakov
2006-04-11 15:34 ` Justin Gombos
2006-04-12 2:59 ` Steve
2006-04-13 7:41 ` Jean-Pierre Rosen
2006-04-13 13:18 ` Marc A. Criley
2006-04-13 13:35 ` Dmitry A. Kazakov
2006-04-13 13:57 ` Making money on open source, if not by selling _support_, then Larry Kilgallen
2006-04-13 19:37 ` Justin Gombos
2006-04-13 21:02 ` Larry Kilgallen
2006-04-14 2:49 ` Justin Gombos
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox