http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54874
--- Comment #3 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2012-10-09 10:48:30 UTC --- > And it is also a regression, as it works on 4.6.3: ... Well, this may be more complicated. On x86_64-apple-darwin10, compiling the attached test with 4.6.3 gives: [macbook] f90/bug% a.out level 1 New inner descr level 1 New inner descr level 2 New inner descr level 1 New inner descr level 2 New inner descr level 3 New inner descr level 1 New inner descr level 2 New inner descr level 3 New inner descr level 4 Base inner descr a.out(97528) malloc: *** error for object 0x100201030: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug while I get the same result minus the error with 4.7.2 and trunk. For the test in comment #1, I always get [macbook] f90/bug% gfortran-fsf-4.6 pr54874_1.f90 -g Undefined symbols: "___testmod_MOD___vtab_testmod_Outer", referenced from: _MAIN__ in cclihViD.o _MAIN__ in cclihViD.o _MAIN__ in cclihViD.o _MAIN__ in cclihViD.o _MAIN__ in cclihViD.o "___testmod_MOD___vtab_testmod_Inner", referenced from: _MAIN__ in cclihViD.o "___testmod_MOD___vtab_testmod_New_inner", referenced from: _MAIN__ in cclihViD.o ld: symbol(s) not found collect2: ld returned 1 exit status