From: David SAUVAGE <david.sauvage@adalabs.com>
Subject: Adjust primitive not called on defaulted nonlimited controlled parameter, bug or feature ?
Date: Wed, 17 Aug 2022 13:11:45 -0700 (PDT) [thread overview]
Message-ID: <ee312315-c9e7-435e-a985-674f952b521cn@googlegroups.com> (raw)
In the code extract below [2] Adjust primitive is not called on defaulted nonlimited controlled parameter Set.
A reproducer is available on gitlab [1]
Seems like a bug, any feedbacks ?
[1]
reproducer
https://gitlab.com/adalabs/reproducers/-/tree/main/adjust-not-called-on-defaulted-nonlimited-controlled-parameter
[2]
1 with Ada.Exceptions,
2 Ada.Text_IO;
3
4 with GNAT.OS_Lib;
5
6 procedure Reproducer.Main is
7
8 --
9 -- snippet of reproducer.ads
10 -- ...
11 -- type Translate_Set is private;
12 -- Null_Set : constant Translate_Set;
13 -- private
14 -- type Translate_Set is new Ada.Finalization.Controlled with record
15 -- Ref_Count : Integer_Access;
16 -- Set : Boolean_Access;
17 -- end record;
18 -- Null_Set : constant Translate_Set := (Ada.Finalization.Controlled with null, null);
19 -- ...
20 --
21
22 procedure Process (Set : Translate_Set := Null_Set)
23 is
24 Content : constant String := Parse (Filename => "Process",
25 Translations => Set);
26 begin
27 Ada.Text_IO.Put_Line (Content);
28 end Process;
29 begin
30 Process;
31 -- Ok, Initialize (Set) is not called because default value Null_Set is specified to Set (7.6 10/2).
32 -- However Adjust (Set) is not called (7.6 17.8/3).
33 -- Is it a feature or a bug ?
34
35 exception
36 when E : others =>
37 Ada.Text_IO.Put_Line ("(FF) Adjust was not called on the nonlimited controlled object Set, when parameter defaulted to Null_Set");
38 Ada.Text_IO.Put_Line ("(FF) " & Ada.Exceptions.Exception_Information (E));
39 GNAT.OS_Lib.OS_Exit (255);
40 end Reproducer.Main;
next reply other threads:[~2022-08-17 20:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-17 20:11 David SAUVAGE [this message]
2022-08-17 22:49 ` Adjust primitive not called on defaulted nonlimited controlled parameter, bug or feature ? Jere
2022-08-18 0:11 ` Jeffrey R.Carter
2022-08-18 1:23 ` Randy Brukardt
2022-08-18 4:04 ` David SAUVAGE
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox