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

Bug#246390: marked as done ([Fixed in 4.4] Legal program runs incorrectly, RM 3.10.2(3,29))



Your message dated Tue, 02 Mar 2010 01:55:00 +0100
with message-id <87iq9fo84b.fsf@ludovic-brenta.org>
and subject line [Fixed in 4.4] Legal program runs incorrectly, RM 3.10.2(3,29)
has caused the Debian Bug report #246390,
regarding [Fixed in 4.4] Legal program runs incorrectly, RM 3.10.2(3,29)
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.)


-- 
246390: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=246390
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: gnat
Version: 3.15p-8
Severity: normal

-- RM 3.10.2(3)
-- The accessibililty rules, which prevent dangling references, are written
-- in terms of accessibility levels,...
-- RM 3.10.2(29)
-- A check is made that the accessibility level of X is not deeper than
-- that of the access type A.  If this check fails, Program_Error is
-- raised.

with Text_IO;  use Text_IO;
procedure Test_51 is
   type T1 is tagged null record;
   type T2 is new T1 with record
       A : aliased T1;
   end record;

   type T1_Access is access all T1'Class;
   X : T1_Access;

   procedure Test_Access (Param: access T2) is
   begin
      X := Param.A'Access;
   end Test_Access;

   procedure Inner_Proc is
      Inner : aliased T2;
   begin
--    X := Inner.A'access;          -- this case caught at compile time
      Test_Access (Inner'access);   -- equivalent run-time case not caught
      Put_Line ("failed: program_error not raised");
   exception
      when Program_Error =>
         Put_Line("passed");
      when others =>
         Put_Line ("failed: other exception raised");
   end;

begin
   Inner_Proc;
end Test_51;


The expected output from running the program is:
passed

The actual output is:
failed: program_error not raised



-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.4.25-1-686
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8

Versions of packages gnat depends on:
ii  libc6                       2.3.2.ds1-11 GNU C Library: Shared libraries an
ii  libgnat-3.15p-1             3.15p-8      The GNU Ada 95 compiler runtime li

-- no debconf information



--- End Message ---
--- Begin Message ---
Version: 4.4.3-1

Fixed in 4.4


--- End Message ---

Reply to: