From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,93da5260093a8774 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!194.25.134.126.MISMATCH!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Alex R. Mosteo" Newsgroups: comp.lang.ada Subject: Re: Bug with variant derived from interface? Followup-To: comp.lang.ada Date: Thu, 04 Jun 2009 10:14:21 +0200 Message-ID: <78pe3iF1m7covU1@mid.individual.net> References: <78np2hF1ndha3U1@mid.individual.net> <8087ca47-e546-47ae-8cf0-13099dbe7375@s28g2000vbp.googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Trace: individual.net pHxtn0LOwngPA0vDI+SpjwJ+0ZlJcbH9Erk3Rkqa0fiYuGgDo= Cancel-Lock: sha1:pRANmkruQO9i65pS4oFnruVD0Ks= User-Agent: KNode/4.3.0 pre Xref: g2news2.google.com comp.lang.ada:6210 Date: 2009-06-04T10:14:21+02:00 List-Id: Adam Beneschan wrote: > On Jun 3, 10:09 am, "Alex R. Mosteo" 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.