------- Comment #4 from fxcoudert at gcc dot gnu dot org 2007-09-14 11:31 ------- I think this is related to the check in trans-types.c:
if (size && INTEGER_CST_P (size)) { if (tree_int_cst_lt (gfc_max_array_element_size, size)) internal_error ("Array element size too big"); i += TREE_INT_CST_LOW (size) << GFC_DTYPE_SIZE_SHIFT; } dtype = build_int_cst (gfc_array_index_type, i); which is triggered by code such as: type t integer i001(268435456) end type t type(t), allocatable :: x(:) allocate(x(1)) print *, size(x) print *, shape(x) end -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21881