[Bug ada/35796] New: Order of progenitors in interface composition: segfault when initializing object of class-wide type.

prog at msobczak dot com gcc-bugzilla@gcc.gnu.org
Wed Apr 2 07:32:00 GMT 2008


Note: This bug *can* be related to 35791 (they can have the same source).

procedure A is

   type Base_1 is interface;
   type Base_2 is interface;
   type Middle is interface and Base_1 and Base_2;

   type Derived is new Middle with null record;

   function Make_Derived return Derived is
   begin

      return Derived' (others => <>);

      -- alternatively:
      -- return (null record);

   end Make_Derived;

   D : Base_2'Class := Make_Derived;

begin
   null;
end;

The program compiles fine, but crashes with segmentation fault at runtime
(after a couple of seconds).

Note: The type of variable D names the second progenitor in the definition of
Middle interface. Aftr changing it to Base_1 (or changing the order of
progenitors in the definition of Middle) the program works fine.


-- 
           Summary: Order of progenitors in interface composition: segfault
                    when initializing object of class-wide type.
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ada
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: prog at msobczak dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35796



More information about the Gcc-bugs mailing list