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.107.198.9 with SMTP id w9mr14268858iof.75.1494258801928; Mon, 08 May 2017 08:53:21 -0700 (PDT) X-Received: by 10.157.82.15 with SMTP id e15mr1270235oth.6.1494258801892; Mon, 08 May 2017 08:53:21 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!news.glorb.com!c26no1479230itd.0!news-out.google.com!v18ni2059ita.0!nntp.google.com!c26no1479225itd.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Mon, 8 May 2017 08:53:21 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=85.167.239.27; posting-account=bPTmZAoAAAC_6HP9XLKB9aAAxBa6BuOR NNTP-Posting-Host: 85.167.239.27 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <83325a39-b5b1-4742-a28b-4a8631379d43@googlegroups.com> Subject: Question about sets and expression From: reinert Injection-Date: Mon, 08 May 2017 15:53:21 +0000 Content-Type: text/plain; charset=UTF-8 Xref: news.eternal-september.org comp.lang.ada:46698 Date: 2017-05-08T08:53:21-07:00 List-Id: Hi, I did not manage to make a simple test program for this problem, but maybe someone can give me a hint here. I start to be "blind" :-) os is here an Ordered_Set (not empty). The first part seems OK, but the second part is confusing (craches). ------------------------------------------------------------------------------- -- First part (seems OK): Put_Line(" Here A "); if not os.is_empty then Put_Line(" Here B "); c := os.first_element; else Put_Line(" Here C "); c := (id => Cnil, others => <>); end if; Put_Line(" Here D "); ------------------------------------------------------------------------------ -- Second part (here it goes wrong): c := (if not os.is_empty then os.first_element else (id => Cnil, others => <>)); Put_Line(" Here E "); ------------------------------------------------------------------------------ * Here is an example of output from this code: Here A Here B Here D Exception raised Exception name: STORAGE_ERROR Message: s-intman.adb:139 explicit raise reinert