This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gfc_array_range_type being garbage collected?


> 
> 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?

Figure out where the ggc_collect is being called.  You might have
forgot to do the GTY dance.  if you want a reduced testcase
use --param ggc-min-expand=0 --param ggc-min-heapsize=0.  At that
point it might become obvious to you where the problem is.

-- Pinski


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]