comp.lang.ada
 help / color / mirror / Atom feed
From: "Alex R. Mosteo" <alejandro@mosteo.com>
Subject: Re: Bug with variant derived from interface?
Date: Thu, 04 Jun 2009 10:14:21 +0200
Date: 2009-06-04T10:14:21+02:00	[thread overview]
Message-ID: <78pe3iF1m7covU1@mid.individual.net> (raw)
In-Reply-To: 8087ca47-e546-47ae-8cf0-13099dbe7375@s28g2000vbp.googlegroups.com

Adam Beneschan wrote:

> 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???)

No idea... but certainly the error, which I've only seen before in 
statements and not in declarations, hints at the compiler being astray. I'll 
report it and see.




      reply	other threads:[~2009-06-04  8:14 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
2009-06-04  8:14   ` Alex R. Mosteo [this message]
replies disabled

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