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