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,FREEMAIL_FROM, INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,c6e016ae58737f34 X-Google-Attributes: gid103376,public From: "David Botton" Subject: Re: win32ada design question/problem Date: 1998/11/19 Message-ID: <732kpc$15sk$1@news.gate.net>#1/1 X-Deja-AN: 413722930 References: <364C5EDE.4F402D13@elca-matrix.ch> <364c90eb.10939677@SantaClara01.news.InterNex.Net> <36501A46.82C348D3@elca-matrix.ch> <36531538.483857@SantaClara01.news.InterNex.Net> <365454A8.EFCA84F9@elca-matrix.ch> <7323td$426$1@nnrp1.dejanews.com> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3155.0 Organization: CyberGate, Inc. Newsgroups: comp.lang.ada Date: 1998-11-19T00:00:00+00:00 List-Id: I believe that GNAT complies and the example would pass a pointer to the String appropriate for C. Would it be necessary to say pragma Convention (c, String_Access)? I know that it would not be necessary in GNAT, but would it be needed for portability? DB > Mats.Weber@elca-matrix.ch wrote: >> Tom Moran wrote: >> >> On the other hand, >> >> type String_Access is access String; >> >> function C_Function (X : in String_Access); >> >> C_Function(S'Unchecked_Access); >> >> will sometimes not work because some compilers (and that includes GNAT) >> use fat pointers for access to unconstrained arrays (I am not saying >> that this is bad). > >No, not if they follow the implementation advice. > >LRM B.3(63 & 67) An implementation should support the following interface >correspondences between Ada and C. ... o An Ada in parameter of an >access-to-object type with designated type T is passed as a t* argument to a >C function, where t is the C type corresponding to the Ada type T. > > >-- >T.E.D. >