From: M E Leypold <development-2006-8ecbb5cc8aREMOVETHIS@ANDTHATm-e-leypold.de>
Subject: A smaller self contained test case. Was: Compiler Bug or what I'm doing wrong?
Date: 23 Jun 2006 11:55:23 +0200
Date: 2006-06-23T11:55:23+02:00 [thread overview]
Message-ID: <t3k678yz5g.fsf@hod.lan.m-e-leypold.de> (raw)
In-Reply-To: 05lkrrojfd.fsf@hod.lan.m-e-leypold.de
Dear All,
I'm attaching a smaller (and now self contained test case!) for the
SIGSEGV whil reading/writing varaint records which I wrote about
earlier.
Some data:
1. Gnat 3.15p on Debian Sarge.
2. Running the attached program wil result in a SIGSEGV in a finalizer.
I'm also attaching a short backtrace.
Regards -- Markus
---
with Ada.Streams.Stream_IO; use Ada.Streams.Stream_IO;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
procedure Demo.Bug3 is
type Customer_Description( Is_Company : Boolean := True ) is record
case Is_Company Is
when True =>
Foo : Integer := 0; -- remove these and the
Bar : Integer := 0; -- SIGSEGV goes away
Company_Name : Unbounded_String ;
when False =>
Persons_Name : Unbounded_String;
when others => null;
end case;
end record;
procedure Set_Zugang ( D : in out Customer_Description ; Z : Boolean ) is begin
if Z /= D.Is_Company then
case Z is
when True =>
declare New_D : Customer_Description(True);
begin
D := New_D ;
end;
when False =>
declare New_D : Customer_Description(False);
begin D := New_D ; end;
end case;
end if;
end;
procedure Write_Record
is
F : File_Type;
S : Stream_Access;
R : Customer_Description;
begin
Create( F , Name => "tmp-bug3" );
S := Stream(F);
Set_Zugang(R, False); -- remove this and the SIGSEGV goes away
for I in 1 .. 400 loop
Customer_Description'Write(S,R); -- [1a]
end loop;
Close(F);
end;
procedure Get_Record
is
F : File_Type;
S : Stream_Access;
begin
Open( F , Mode => In_File, Name => "tmp-bug3" );
S := Stream(F);
for I in 1 .. 400 loop
declare R : Customer_Description;
begin
Customer_Description'Read(S,R); -- [1b]
end;
end loop;
Close( F );
end;
R : Customer_Description;
begin
Write_Record;
Get_Record;
end;
---
Program received signal SIGSEGV, Segmentation fault.
0x408d1d41 in system__finalization_implementation__finalize_list ()
from /usr/lib/libgnat-3.15p.so.1
#0 0x408d1d41 in system__finalization_implementation__finalize_list ()
from /usr/lib/libgnat-3.15p.so.1
#1 0x408d1bdc in system__finalization_implementation__finalize ()
from /usr/lib/libgnat-3.15p.so.1
#2 0x408d1d47 in system__finalization_implementation__finalize_list ()
from /usr/lib/libgnat-3.15p.so.1
#3 0x0804cef9 in demo__bug3__get_record__B_4___clean.21 ()
#4 0x0804dec7 in demo.bug3.get_record () at demo-bug3.adb:77
#5 0x0804e203 in demo.bug3 () at demo-bug3.adb:88
#6 0x0804b4ad in main (argc=1, argv=(system.address) 0xbffff8a4,
envp=(system.address) 0xbffff8ac) at b~demo-bug3.adb:180
#7 0x40930e36 in __libc_start_main () from /lib/libc.so.6
next prev parent reply other threads:[~2006-06-23 9:55 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-20 16:56 Compiler Bug or what I'm doing wrong? M E Leypold
2006-06-21 7:44 ` Ludovic Brenta
2006-06-21 12:29 ` M E Leypold
2006-06-21 12:46 ` Alex R. Mosteo
2006-06-21 13:23 ` M E Leypold
2006-06-22 19:10 ` Simon Wright
2006-06-23 8:24 ` Ludovic Brenta
2006-06-23 13:14 ` Alex R. Mosteo
2006-06-23 13:24 ` Alex R. Mosteo
2006-06-24 20:33 ` Simon Wright
2006-06-24 20:56 ` M E Leypold
2006-06-26 7:32 ` Ludovic Brenta
2006-06-26 11:16 ` M E Leypold
2006-06-26 12:13 ` [Ada in Debian] GtkAda and GNAT versions Ludovic Brenta
2006-06-26 12:25 ` M E Leypold
2006-06-27 20:55 ` Compiler Bug or what I'm doing wrong? Simon Wright
2006-06-27 22:26 ` Ludovic Brenta
2006-06-22 2:07 ` James Dennett
2006-06-22 6:37 ` Duncan Sands
2006-06-22 16:53 ` M E Leypold
2006-06-22 19:01 ` Pascal Obry
2006-06-23 8:37 ` M E Leypold
2006-06-22 19:05 ` Dmitry A. Kazakov
2006-06-23 4:47 ` Jeffrey R. Carter
2006-06-23 12:26 ` Stephen Leake
2006-06-23 13:11 ` Dmitry A. Kazakov
2006-06-23 13:15 ` Alex R. Mosteo
2006-06-23 9:55 ` M E Leypold [this message]
2006-06-23 10:03 ` A smaller self contained test case. Was: " M E Leypold
2006-06-23 11:04 ` And a Workaround: Was: A smaller test case / Compiler Bug M E Leypold
2006-06-23 11:12 ` Possible memory leaks when reading/writing variant records M E Leypold
2006-06-24 11:46 ` A smaller self contained test case. Was: Compiler Bug or what I'm doing wrong? Dmitry A. Kazakov
2006-06-24 12:27 ` M E Leypold
2006-06-24 12:52 ` Dmitry A. Kazakov
2006-06-24 13:53 ` M E Leypold
2006-06-24 19:58 ` Dmitry A. Kazakov
2006-06-24 20:22 ` M E Leypold
2006-06-25 7:59 ` Dmitry A. Kazakov
2006-06-25 10:51 ` M E Leypold
2006-06-26 6:22 ` Martin Dowie
2006-06-24 21:21 ` M E Leypold
2006-06-25 21:36 ` M E Leypold
2006-06-26 21:53 ` Possibly fixed in gcc 4.1.1, but bug box -- Was: Re: A smaller self contained test case M E Leypold
2006-06-27 18:24 ` Alex R. Mosteo
2006-06-27 22:58 ` M E Leypold
2006-06-28 10:32 ` Alex R. Mosteo
2006-07-03 1:38 ` Steve Whalen
2006-07-03 10:36 ` M E Leypold
2006-06-28 8:41 ` Ludovic Brenta
2006-06-28 8:51 ` Georg Bauhaus
2006-06-28 10:43 ` Alex R. Mosteo
2006-06-23 10:00 ` Compiler Bug or what I'm doing wrong? M E Leypold
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox