comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Bug with variant derived from interface?
Date: Wed, 3 Jun 2009 15:12:56 -0700 (PDT)
Date: 2009-06-03T15:12:56-07:00	[thread overview]
Message-ID: <8087ca47-e546-47ae-8cf0-13099dbe7375@s28g2000vbp.googlegroups.com> (raw)
In-Reply-To: 78np2hF1ndha3U1@mid.individual.net

On Jun 3, 10:09 am, "Alex R. Mosteo" <alejan...@mosteo.com> wrote:
> Before reporting a bug to Adacore I'd like to have your opinion. With the
> following test program I get the error below in both GPL2008/2009.
>
> procedure Bugcase is
>
>    --  type Base is abstract tagged null record;
>    --  This works
>
>    type Base is interface;
>    --  This does not work.
>
>    type Derived_Ok (X : Boolean) is new Base with null record;
>
>    type Derived_Also_Ok (X : Boolean) is new Base with record
>       Y : Integer;
>    end record;
>
>    type Derived_Bad (X : Boolean) is new Base with record
>       --  Above line is the one failing.
>       case X is
>          when others => null;
>       end case;
>    end record;
>
> begin
>    null;
> end Bugcase;
>
> $ gnatmake bugcase.adb
> gcc -c bugcase.adb
> bugcase.adb:14:09: call to abstract function must be dispatching
> gnatmake: "bugcase.adb" compilation error

I don't see any reason this program should be illegal.  The message
involving a "call to abstract function" is certainly wrong, because
there aren't any abstract function calls involved.  (Just as a wild
guess, I'm guessing that the abstract function GNAT is complaining
about is "=", and there's some special subroutine that tries to
compose the equality function for variant records that isn't handling
this case right...  did I come close???)

                               -- Adam



  reply	other threads:[~2009-06-03 22:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-03 17:09 Bug with variant derived from interface? Alex R. Mosteo
2009-06-03 22:12 ` Adam Beneschan [this message]
2009-06-04  8:14   ` Alex R. Mosteo
replies disabled

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