------- Comment #2 from pault at gcc dot gnu dot org 2006-11-05 22:03 ------- We can move into different territory by referring to vocab_swap:
PROGRAM vocabulary_word_count IMPLICIT NONE TYPE VARYING_STRING CHARACTER,DIMENSION(:),ALLOCATABLE :: chars ENDTYPE VARYING_STRING INTEGER :: list_size=200 CONTAINS SUBROUTINE extend_lists type(VARYING_STRING),DIMENSION(list_size) :: vocab_swap allocate (vocab_swap(1)%chars(10)) ENDSUBROUTINE extend_lists ENDPROGRAM vocabulary_word_count bombs out, as follows: pr29699.f90: In function 'extend_lists': pr29699.f90:11: internal compiler error: tree check: expected record_type or uni on_type or qual_union_type, have pointer_type in find_compatible_field, at tree. c:7108 Please submit a full bug report, So I would say that there are two bugs! It is interesting to compare the code produced here with taht produced when list_size is made a parameter. This appears to be the clue but it is a bit opaque right now. Paul -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29699