[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#589164: marked as done (gnat-4.4: [Fixed in 4.5] controlled objects adjusted too often)



Your message dated Sat, 31 Jul 2010 23:03:29 +0000
with message-id <E1OfL5V-00071C-9m@franck.debian.org>
and subject line Bug#589164: fixed in gnat-4.4 4.4.4-5
has caused the Debian Bug report #589164,
regarding gnat-4.4: [Fixed in 4.5] controlled objects adjusted too often
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
589164: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589164
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: gnat-4.4

Version: 4.4.4-4

Severity: important



(From Dmitry A. Kazakov)



with Ada.Finalization;

with Ada.Unchecked_Deallocation;

with Ada.Text_IO;



procedure Controlled_Array is

   type T is new Ada.Finalization.Limited_Controlled with record

      C : Natural := 0;

   end record;

   overriding procedure Finalize (X : in out T);



   procedure Finalize (X : in out T) is

   begin

      if X.C = 0 then

         Ada.Text_IO.Put_Line ("Successful finalization");

      else

         Ada.Text_IO.Put_Line

           ("Illegal count in finalization" & Integer'Image (X.C));

         raise Program_Error;

      end if;

   end Finalize;



   type T_Ptr is access T'Class;

   type H is new Ada.Finalization.Controlled with record

      P : T_Ptr;

   end record;

   overriding procedure Finalize (X : in out H);

   overriding procedure Adjust (X : in out H);



   procedure Finalize (X : in out H) is

      procedure Free is new Ada.Unchecked_Deallocation (T'Class, T_Ptr);

   begin

      if X.P /= null then

         X.P.C := X.P.C - 1;

         if X.P.C = 0 then

            Free (X.P);

         end if;

      end if;

   end Finalize;

   procedure Adjust (X : in out H) is

   begin

      X.P.C := X.P.C + 1;

   end Adjust;



   type H_Array is array (Positive range <>) of H;



   function Create return H is

      Result : H;

   begin

      Result.P := new T;

      Result.P.C := 1;

      return Result;

   end Create;



   List  : H_Array := (Create, Create, Create);

   First : T_Ptr := List (List'First).P;

begin

   Ada.Text_IO.Put_Line ("Count" & Integer'Image (First.C));

end Controlled_Array; 



Expected output:



   $ ./controlled_array

   Count 1

   Successful finalization

   Successful finalization

   Successful finalization 



Actual output:



Count 2

Illegal count in finalization 1 







I believe that the following patch (in GCC 4.5) fixes this:



2009-04-17 Thomas Quinot <qui...@adacore.com>



   * exp_ch7.adb (Expand_Ctrl_Function_Call): Remove incorrect special

     case for the case of an aggregate component, the attach call for the

     result is actually needed.



   * exp_aggr.adb (Backend_Processing_Possible): Backend processing for

     an array aggregate must be disabled if the component type requires

     controlled actions.



   * exp_ch3.adb: Minor reformatting 



To be backported.



-- 

Ludovic Brenta.





--- End Message ---
--- Begin Message ---
Source: gnat-4.4
Source-Version: 4.4.4-5

We believe that the bug you reported is fixed in the latest version of
gnat-4.4, which is due to be installed in the Debian FTP archive:

gnat-4.4-base_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/gnat-4.4-base_4.4.4-5_amd64.deb
gnat-4.4_4.4.4-5.diff.gz
  to main/g/gnat-4.4/gnat-4.4_4.4.4-5.diff.gz
gnat-4.4_4.4.4-5.dsc
  to main/g/gnat-4.4/gnat-4.4_4.4.4-5.dsc
gnat-4.4_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/gnat-4.4_4.4.4-5_amd64.deb
libgnat-4.4-dbg_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/libgnat-4.4-dbg_4.4.4-5_amd64.deb
libgnat-4.4_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/libgnat-4.4_4.4.4-5_amd64.deb
libgnatprj-dev_4.4.4-5_all.deb
  to main/g/gnat-4.4/libgnatprj-dev_4.4.4-5_all.deb
libgnatprj4.4-dbg_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/libgnatprj4.4-dbg_4.4.4-5_amd64.deb
libgnatprj4.4-dev_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/libgnatprj4.4-dev_4.4.4-5_amd64.deb
libgnatprj4.4_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/libgnatprj4.4_4.4.4-5_amd64.deb
libgnatvsn-dev_4.4.4-5_all.deb
  to main/g/gnat-4.4/libgnatvsn-dev_4.4.4-5_all.deb
libgnatvsn4.4-dbg_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/libgnatvsn4.4-dbg_4.4.4-5_amd64.deb
libgnatvsn4.4-dev_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/libgnatvsn4.4-dev_4.4.4-5_amd64.deb
libgnatvsn4.4_4.4.4-5_amd64.deb
  to main/g/gnat-4.4/libgnatvsn4.4_4.4.4-5_amd64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 589164@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Ludovic Brenta <lbrenta@debian.org> (supplier of updated gnat-4.4 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Thu, 29 Jul 2010 12:35:51 +0200
Source: gnat-4.4
Binary: gnat-4.4-base gnat-4.4 libgnat-4.4 libgnat-4.4-dbg libgnatvsn-dev libgnatvsn4.4-dev libgnatvsn4.4 libgnatvsn4.4-dbg libgnatprj-dev libgnatprj4.4-dev libgnatprj4.4 libgnatprj4.4-dbg
Architecture: source all amd64
Version: 4.4.4-5
Distribution: unstable
Urgency: low
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Changed-By: Ludovic Brenta <lbrenta@debian.org>
Description: 
 gnat-4.4   - The GNU Ada compiler
 gnat-4.4-base - The GNU Compiler Collection (gnat base package)
 libgnat-4.4 - Runtime library for GNU Ada applications
 libgnat-4.4-dbg - Runtime library for GNU Ada applications
 libgnatprj-dev - GNU Ada compiler version library - development files
 libgnatprj4.4 - GNU Ada Project Manager
 libgnatprj4.4-dbg - GNU Ada Project Manager
 libgnatprj4.4-dev - GNU Ada Project Manager development files
 libgnatvsn-dev - GNU Ada compiler version library - development files
 libgnatvsn4.4 - GNU Ada compiler version library
 libgnatvsn4.4-dbg - GNU Ada compiler version library
 libgnatvsn4.4-dev - GNU Ada compiler version library - development files
Closes: 589164
Changes: 
 gnat-4.4 (4.4.4-5) unstable; urgency=low
 .
   * debian/patches/ada-bug589164.diff: new.  Closes: #589164.
Checksums-Sha1: 
 94bc812c71989c45ee07942753764a4884218eea 2467 gnat-4.4_4.4.4-5.dsc
 409680ceb546d0177da69adbff8daab708650041 591462 gnat-4.4_4.4.4-5.diff.gz
 0bb82848617fa77342a96161a729de7db42739d7 818 libgnatvsn-dev_4.4.4-5_all.deb
 46fc1e44d9dcf7ddc5cd180a3b12ef93685d1134 816 libgnatprj-dev_4.4.4-5_all.deb
 f7006c62d4ba4ecddfafffef5f54ce3c5510aa4f 134064 gnat-4.4-base_4.4.4-5_amd64.deb
 1b53b3f8c7cb24bcc7d7607d3e036b35041a9e55 1148412 libgnat-4.4_4.4.4-5_amd64.deb
 a456a402a0248601a5b8099fcb1db6bd7a1b64a4 1716458 libgnatvsn4.4-dev_4.4.4-5_amd64.deb
 e70549249ea662d8367a55b98e283b050a905b1f 335582 libgnatvsn4.4_4.4.4-5_amd64.deb
 89b62e763dba900d2e4aa8e8bb8e1db2bd391215 2656324 libgnatprj4.4-dev_4.4.4-5_amd64.deb
 341674a6ff60bcc2a8392b08ee65ed4fe4f3bdc3 578444 libgnatprj4.4_4.4.4-5_amd64.deb
 4534e4dd2a48fcc0e0d51bdaa3f7b7657498f6f8 880864 libgnatprj4.4-dbg_4.4.4-5_amd64.deb
 d5460123121d5795423ba718ece141073cba1df5 1950084 libgnat-4.4-dbg_4.4.4-5_amd64.deb
 b86a1b6ecba08ffa2e9253fc8a575ba7d7597d0e 458278 libgnatvsn4.4-dbg_4.4.4-5_amd64.deb
 d1d3fb73b279658514ac795f2f19b523d0988f82 14925204 gnat-4.4_4.4.4-5_amd64.deb
Checksums-Sha256: 
 c7ee8219bddd6d1192d106f3c6d2d2916e58bed5b1741e2f8fbacb8d2340f8d8 2467 gnat-4.4_4.4.4-5.dsc
 ed60ef7119db472d8d92e52bef26c03eb3e62290d5942d06637420e3b813aeb6 591462 gnat-4.4_4.4.4-5.diff.gz
 1dd62c50cd316be381be63f0f36bdc58ce37c278704c86357382f97d33425d6f 818 libgnatvsn-dev_4.4.4-5_all.deb
 3b49ea0c00757e3edf721bf46c12f16950226e22fe41220a5dee390f96752ad1 816 libgnatprj-dev_4.4.4-5_all.deb
 c2510f925283e9da56a6cf2aa342edd46b162c5edfa0ee7cfe36e06f0b8c6c0f 134064 gnat-4.4-base_4.4.4-5_amd64.deb
 f7a3f95782c533354eeeb34443f01a7b9461603931456e7c975de7d0c7642bd4 1148412 libgnat-4.4_4.4.4-5_amd64.deb
 c2aaedc288696c9d3c672f4c61f3117c614f5b0b7f981a937fa7769e73aacda0 1716458 libgnatvsn4.4-dev_4.4.4-5_amd64.deb
 58b09c9dae4a9ef564c0dba747e0faf08ce373a3982d73b95d7f38f40a6c503b 335582 libgnatvsn4.4_4.4.4-5_amd64.deb
 7c342148dd065115e19e537dfa6d2d2a01a75d1ab264646b8c9e75498c94d82e 2656324 libgnatprj4.4-dev_4.4.4-5_amd64.deb
 db1ff70f6af588075ac7e1b1d45c4912fe12dc2f812112a3864035da7fcc33c0 578444 libgnatprj4.4_4.4.4-5_amd64.deb
 f0af0a9a33f7eadddb93c239b2963e4e1609af6b9faceba182967f22a008550b 880864 libgnatprj4.4-dbg_4.4.4-5_amd64.deb
 81b816fa5dc9869d08f51764f6cd9eea091a52330a77c472307571f07784fa8a 1950084 libgnat-4.4-dbg_4.4.4-5_amd64.deb
 da59fff9392c96e3140ba473a2ed6452648d099c1a91d7a9a2afce637a3b147b 458278 libgnatvsn4.4-dbg_4.4.4-5_amd64.deb
 d0c338aaef80da626136690e579920333bf09f503a11bd47bd7984107af8efd9 14925204 gnat-4.4_4.4.4-5_amd64.deb
Files: 
 e63343c246a06c68e0290bce9a035821 2467 devel optional gnat-4.4_4.4.4-5.dsc
 447986c68aca4349acb5b6e9db32cc49 591462 devel optional gnat-4.4_4.4.4-5.diff.gz
 7d7dd150b7ffa700540d7bce73d3931c 818 libdevel optional libgnatvsn-dev_4.4.4-5_all.deb
 0a4de2d8678e78503f24f1a9b2504b2b 816 libdevel optional libgnatprj-dev_4.4.4-5_all.deb
 422fc711054bd0eb7e37b17038a7078b 134064 libs optional gnat-4.4-base_4.4.4-5_amd64.deb
 6635ab0dcacf1496fd4cf22cfc440205 1148412 libs optional libgnat-4.4_4.4.4-5_amd64.deb
 7b88f785d64891a579464542e6745b8e 1716458 libdevel optional libgnatvsn4.4-dev_4.4.4-5_amd64.deb
 5b9148c369acb61ef73476472e8a3555 335582 libs optional libgnatvsn4.4_4.4.4-5_amd64.deb
 c091187e506f04fb038684cdfe02e2aa 2656324 libdevel optional libgnatprj4.4-dev_4.4.4-5_amd64.deb
 0caf0f7bc386c2543f4959b12c0f9556 578444 libs optional libgnatprj4.4_4.4.4-5_amd64.deb
 4104371b63fa9a316ca58b2b72ac92e1 880864 debug extra libgnatprj4.4-dbg_4.4.4-5_amd64.deb
 14bbafab2a3657f98f8f0cb17a76b722 1950084 debug extra libgnat-4.4-dbg_4.4.4-5_amd64.deb
 c51c811352285adbb6871d5355d7caed 458278 debug extra libgnatvsn4.4-dbg_4.4.4-5_amd64.deb
 b2ea4663ed5c462ca57352d404a17443 14925204 devel optional gnat-4.4_4.4.4-5_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iD8DBQFMVKfmx9kwJZ3/qtQRAn+IAJ9NvRlcocBmaDY5P5HaLaQMIxHU3ACfUBe6
v7KaXULQ85SsjTh0CDayUV8=
=oQCZ
-----END PGP SIGNATURE-----



--- End Message ---

Reply to: