From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a80b2433ed82459a,start X-Google-Attributes: gid103376,public From: jerry@jvdsys.nextjk.stuyts.nl (Jerry van Dijk) Subject: Access to Address conversion question Date: 1996/03/21 Message-ID: #1/1 X-Deja-AN: 143657620 organization: JerryWare HQ, Haarlem, Holland newsgroups: comp.lang.ada Date: 1996-03-21T00:00:00+00:00 List-Id: It might be just me again, but I cannot figure out how to convert an access type to an address, as in assigning Address_C in the code below. GNAT (3.03) tells me I have an invalid parameter list in the call to To_Address here ? Of course I realize that although my C background makes me view Some_Object_Ptr as just an alias for Some_Object'ACCESS it is, in fact, a different type. However, LRM 13.7.2 (3) led me to believe it should be possible... with System.Address_To_Access_Conversions; with System.Storage_Elements; use System.Storage_Elements; procedure Demo is type Some_Object is array (1..10) of Character; type Some_Object_Ptr is access all Some_Object; package Some_Object_Conversion is new System.Address_To_Access_Conversions(Some_Object); use Some_Object_Conversion; A_Object : aliased Some_Object; A_Object_Ptr : Some_Object_Ptr := A_Object'ACCESS; Address_A, Address_B, Address_C : Integer; begin Address_A := Integer(To_Integer(A_Object'ADDRESS)); Address_B := Integer(To_Integer(To_Address(A_Object'ACCESS))); Address_C := Integer(To_Integer(To_Address(A_Object_Ptr))); end Demo; -- ----------------------------------------------------------------------- -- Jerry van Dijk -- e-mail: jerry@jvdsys.nextjk.stuyts.nl -- -- Banking Consultant -- Member Team-Ada -- -- Ordina Finance BV -- Located at Haarlem, The Netherlands -- ----------------------------------------------------------------------- -- I do not speak for my employer, my employer does not speak for me -- -----------------------------------------------------------------------