http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46256
Summary: Combination of protected type, interfaces and
unchecked deallocation causes the compiler to crash.
Product: gcc
Version: 4.3.4
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
AssignedTo: [email protected]
ReportedBy: [email protected]
with Ada.Unchecked_Deallocation;
procedure Test is
package P is
type My_Interface is limited interface;
procedure Do_Something (X : in out My_Interface) is abstract;
end P;
protected type My_Protected is new P.My_Interface with
overriding
procedure Do_Something;
end My_Protected;
protected body My_Protected is
overriding
procedure Do_Something is
begin
null;
end Do_Something;
end My_Protected;
type My_Protected_Ptr is access My_Protected;
procedure Free is new Ada.Unchecked_Deallocation
(Object => My_Protected, Name => My_Protected_Ptr);
Ptr : My_Protected_Ptr;
begin
-- here come dragons:
--Free (Ptr);
null;
end Test;
Uncommenting the indicated line causes all known compiler versions to crash
with internal error.