comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: representation clauses ok in generics when the formal type in tagged with known ancestor, but not ok when only know to be tagged ? ... said the compiler.
Date: Mon, 26 Mar 2018 17:31:52 -0500
Date: 2018-03-26T17:31:52-05:00	[thread overview]
Message-ID: <p9bscp$80l$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: d24fd816-10f4-48b3-b584-fe6589d38a62@googlegroups.com

No idea. It doesn't look right, but I don't know if that is an Ada or a 
compiler problem. Perhaps there is some rule which should have a special 
case for generic tagged private types, and doesn't.

                         Randy.


"Mehdi Saada" <00120260a@gmail.com> wrote in message 
news:d24fd816-10f4-48b3-b584-fe6589d38a62@googlegroups.com...
> This is a translation from fr.c.l.a.
>
> I wonder why in some cases where a generic formal type is a tagged type 
> and has a known ancestor, one can alter the representation:
>
> package AAA is
>   type Type_A is tagged
>      record
>         INT: INTEGER;
>      end record;
> end AAA;
> with AAA; use AAA;
> generic
>   type NT is new type_A with private;
> package TENTATIVE is
>   type B_Type is new Nt with null record with SIZE => 300;
>   procedure P1 (B : B_Type) is NULL;
> end TENTATIVE;
> with AAA, TENTATIVE; use AAA;
> procedure MAIN is
> package TEST is new TENTATIVE(Type_A);
> begin Null; end;
>
> It only gives me "main.adb:3:01: warning: in instantiation at 
> tentative.ads:5
> main.adb:3:01: warning: 172 bits of "B_Type" unused"
>
> It compiles, while when the contract states that NT has only to be tagged, 
> it failed.
> To change "type NT is new TYPE_A with private" into "type NT is tagged 
> private" gives "tentative.ads:5:48: representation item not allowed for 
> generic type"
>
> JPRosen couldn't help on this, and said you Randy could saw to it better 
> ;-) 



  reply	other threads:[~2018-03-26 22:31 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-24 17:16 representation clauses ok in generics when the formal type in tagged with known ancestor, but not ok when only know to be tagged ? ... said the compiler Mehdi Saada
2018-03-26 22:31 ` Randy Brukardt [this message]
2018-03-27 13:57   ` Jean-Claude Rostaing
2018-03-27 23:59     ` Randy Brukardt
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox