comp.lang.ada
 help / color / mirror / Atom feed
From: "J-P. Rosen" <rosen@adalog.fr>
Subject: Re: Did I find a bug here?
Date: Fri, 2 Apr 2021 09:30:34 +0200	[thread overview]
Message-ID: <s46h6q$c2m$1@dont-email.me> (raw)
In-Reply-To: <6901cec3-b7b1-48c8-98fe-0360572175c2n@googlegroups.com>

Le 02/04/2021 à 08:30, reinert a écrit :
> Assume this simple program:
> 
> procedure test0 is
>    type ABC_Type is (A,B,C);
>    subtype AB_Type is ABC_Type with Static_Predicate => AB_Type in A | B;
>    X : ABC_type    := A;
> begin
> -- alternative 1:
> case AB_Type(X) is
>      when A => null;
>      when B => null;
>      when others => null; -- ??? should the compiler complain here?
>    end case;
> --alternative 2:
>    case AB_Type(X) is
>      when A => null;
>      when B => null;
>    end case;
> end test0;
> 
> Should the compiler complain about "when others => null" here?
> My compiler does not (running debian 10, updated, gnat-8).
> I find it strange that both alternatives goes through.
> 
A case statement is allowed to have alternatives that cover no value. A 
friendly compiler can warn you that "this branch covers no value", but 
what you wrote is not illegal (and sometimes useful, if you have 
variants of your software that use slightly different definitions of the 
type).

-- 
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr

  reply	other threads:[~2021-04-02  7:30 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-02  6:30 Did I find a bug here? reinert
2021-04-02  7:30 ` J-P. Rosen [this message]
2021-04-02  8:33   ` Niklas Holsti
2021-04-03  5:46     ` reinert
2021-04-03  6:41       ` J-P. Rosen
2021-04-03  8:18         ` Niklas Holsti
2021-04-03 12:37           ` J-P. Rosen
  -- strict thread matches above, loose matches on Subject: below --
2021-04-02  6:15 reinert
replies disabled

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