Hi,
I've come across a strange bug while preparing the Cray pointer patch
for release. In a large test program, I get an ICE due to
gfc_array_range_type being overwritten prior to being used in
gfc_get_array_type_bounds. This only happens with a sufficiently
large program, and it appears that gfc_array_range_type is being
garbage collected:
Hardware watchpoint 6: *1073909760
(gdb) cont
MAIN__ loctest ptrparms pteparm1 ptr1 ptr2 ptr3 ptr4 ptr5 ptr6 {GC
5429k -> Hardware watchpoint 6: *1073909760
Old value = 0
New value = -1515870811
0x001d9c77 in memset () from /lib/tls/libc.so.6
This happens while translating a Cray pointee, but I don't think it's
related; the same subroutine compiles and runs fine in a smaller
program. Does anybody have an idea what could be happening?