From: Per Sandberg <per.s.sandberg@bahnhof.se>
Subject: Re: Unchecked_Union record inside an other record - trouble
Date: Fri, 08 Aug 2014 21:21:06 +0200
Date: 2014-08-08T21:21:06+02:00 [thread overview]
Message-ID: <53e52322$0$32389$862e30e2@ngroups.net> (raw)
In-Reply-To: <ls2qqd$dsp$1@speranza.aioe.org>
You shall not try to write interface code by hand you shall use the
compiler
gcc -c -fdump-ada-spec <more arguments and files>
see GNAT Users guide.
Since humans makes a heap load of errors and erronous asumptions when
they try to translate the contents of a .h file to an .ads file, the
compiler does a much better job.
/Per
On 08.08.2014 17:36, Victor Porton wrote:
> I am trying to interface my program with a C library.
>
> The below program does not compile:
>
> main.adb:19:14: unconstrained subtype in component declaration
>
> If this does not work, what should I do to interface a union inside a struct
> in a C library?
>
> -- main.adb
> with Interfaces.C; use Interfaces.C;
>
> procedure Main is
>
> type Kind is (First, Second);
>
> type T(K: Kind) is
> record
> case K is
> when First => I: int;
> when Second => C: char;
> end case;
> end record
> with Unchecked_Union, Convention=>C;
>
> type T2 is
> record
> Z: int;
> Ob: T;
> end record
> with Convention=>C;
>
> begin
> null;
> end;
>
next prev parent reply other threads:[~2014-08-08 19:21 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-08 15:36 Unchecked_Union record inside an other record - trouble Victor Porton
2014-08-08 16:01 ` Adam Beneschan
2014-08-08 16:56 ` Victor Porton
2014-08-08 18:52 ` Shark8
2014-08-08 19:56 ` Victor Porton
2014-08-08 20:06 ` Pascal Obry
2014-08-08 20:09 ` Shark8
2014-08-08 20:12 ` Victor Porton
2014-08-08 20:22 ` Shark8
2014-08-08 20:28 ` Victor Porton
2014-08-08 21:07 ` Shark8
2014-08-08 19:52 ` Victor Porton
2014-08-08 19:57 ` Adam Beneschan
2014-08-08 19:21 ` Per Sandberg [this message]
2014-08-08 20:01 ` Victor Porton
2014-08-08 21:23 ` Jeffrey Carter
2014-08-10 7:25 ` Per Sandberg
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox