http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49076
--- Comment #2 from Andrew Baldwin <andrew.t.baldwin at me dot com> 2011-05-21 03:16:20 UTC --- I'm not sure if this is directly related or not, but the following program produces the same output as the original (with the same problem): subroutine print_int (i) integer, intent (in) :: i(2) print *, i end subroutine print_int program main interface subroutine print_int (i) integer, intent (in) :: i(2) end subroutine print_int end interface type foobar integer :: i(2) end type foobar type (foobar) :: foo foo%i = [3, 4] print *, foo%i associate (bar => foo%i) print *, bar call print_int (bar) end associate end program Thank you for looking into this!