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.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Jeffrey Carter Newsgroups: comp.lang.ada Subject: Re: Passing a String to a C/C++ Subprogram (Special Case) Date: Wed, 16 Oct 2013 08:14:32 -0700 Organization: Also freenews.netfront.net; news.tornevall.net Message-ID: References: <1374ac32-0fb5-4589-a9a5-7740030fd3c6@googlegroups.com> <4bb47482-ccb9-4641-a702-2b2978100ff9@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Wed, 16 Oct 2013 15:14:33 +0000 (UTC) Injection-Info: mx05.eternal-september.org; posting-host="1f3496dec3b2a953772d1e0537164117"; logging-data="11194"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19OVgqGfp7upKm3vX3/7KcRJaTBzZ+lfzw=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0 In-Reply-To: Cancel-Lock: sha1:QAI88Yg+pISsqTnQ4xy/ncGcQWk= Xref: news.eternal-september.org comp.lang.ada:17433 Date: 2013-10-16T08:14:32-07:00 List-Id: On 10/16/2013 12:17 AM, Dmitry A. Kazakov wrote: > > procedure Foo (A : String) is > procedure C_Prog (C_String : Address); > pragma Import (...); > pragma Assert (Character'Size = char'Size); -- sic! > begin > C_Prog (A (A'First)'Address); This will fail on a number of compilers. An Ada Address is not necessarily the same as a C pointer. -- Jeff Carter "When Roman engineers built a bridge, they had to stand under it while the first legion marched across. If programmers today worked under similar ground rules, they might well find themselves getting much more interested in Ada!" Robert Dewar 62