http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51976
--- Comment #8 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2013-02-10 19:59:37 UTC --- With the patch in comment #7 most of the duplicates compile and run, but: pr49050 which gives pr49050.f90:13.10: item = item_type('key') 1 Error: No initializer for component '_key' given in the structure constructor at (1)! (note that the original code at http://gcc.gnu.org/ml/fortran/2011-05/msg00129.html compiles but segfault at runtime); pr51550 which gives an ICE gimplification failed: 0 <integer_cst 0x14280bc80 type <integer_type 0x1428125e8 integer(kind=4)> constant 0> pr51550.f90: In function 'add_key_only': pr51550.f90:64:0: internal compiler error: gimplification failed allocate( character(len=len(key)) :: value%key ) ^ and a similar error for the test in comment #6 type t character(len=:), pointer :: str end type t type(t), pointer :: strarray(:), strarray2(:) allocate(strarray(3), strarray2(3)) allocate(character(len=5) :: strarray(1)%str, strarray2(1)%str) allocate(character(len=7) :: strarray(2)%str, strarray2(2)%str) allocate(character(len=2) :: strarray(2)%str, strarray2(3)%str) ! forall(i=1:3) strarray2(i)%str = strarray(i)%str print *, (len(strarray2(i)%str), i=1,3) end gimplification failed: 0 <integer_cst 0x14280bc80 type <integer_type 0x1428125e8 integer(kind=4)> constant 0> pr51976_1.f90: In function 'MAIN__': pr51976_1.f90:7:0: internal compiler error: gimplification failed allocate(character(len=5) :: strarray(1)%str, strarray2(1)%str) ^ If the FORALL is uncommented, the ICE is pr51976_1.f90: In function 'MAIN__': pr51976_1.f90:11:0: internal compiler error: in gfc_add_modify_loc, at fortran/trans.c:159 forall(i=1:3) strarray2(i)%str = strarray(i)%str ^ At runtime the test attached to pr48654 gives a segmentation fault (fixed by the revised patch sent privately). The iso_varying_string I have in store also compiles and run (limited testing).