comp.lang.ada
 help / color / mirror / Atom feed
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;
>


  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