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,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.224.4.138 with SMTP id 10mr1527560qar.8.1377439659343; Sun, 25 Aug 2013 07:07:39 -0700 (PDT) X-Received: by 10.49.134.37 with SMTP id ph5mr354455qeb.4.1377439659287; Sun, 25 Aug 2013 07:07:39 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!eu.feeder.erje.net!feeder.erje.net!us.feeder.erje.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!fx3no4705812qab.0!news-out.google.com!he10ni3465qab.0!nntp.google.com!fx3no4705808qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sun, 25 Aug 2013 07:07:39 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=78.224.49.155; posting-account=uO_vzwoAAAAM7jhNZDkCkZpIghqP_5r8 NNTP-Posting-Host: 78.224.49.155 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <54258ffb-a99c-48d8-8d2b-02694efb6d36@googlegroups.com> Subject: Contraint error when "out" parameter has incorrect initial content From: pascal.malaise@gmail.com Injection-Date: Sun, 25 Aug 2013 14:07:39 +0000 Content-Type: text/plain; charset=ISO-8859-1 Xref: news.eternal-september.org comp.lang.ada:16955 Date: 2013-08-25T07:07:39-07:00 List-Id: Hi, I am wondering if GNAT is correct when raising Constraint_Error in the following case: procedure Out_Discr is type T (B : Boolean := False) is record case B is when True => null; when False => null; end case; end record; subtype Tt is T(True); procedure P (V : out Tt) is begin V := (B => True); end P; M : T; begin M := (B => False); P (M); -- <-- Here end Out_Discr; >> raised CONSTRAINT_ERROR : out_discr.adb:20 discriminant check failed Indeed M is not Tt when calling P, but M is "out" parameter. Shouldn't it be overwritten without any constraint check? Thank you.