This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]