Per Bothner <[EMAIL PROTECTED]> writes:

> Daniel Jacobowitz wrote:
>   > That's exactly what Geoff said.  There are two relevant properties of
> > GCed memory here:
> >   - Anything in GCed memory will be saved to the PCH
> >   - Anything in GCed memory will be overwritten by loading the PCH.
> 
> So the corrollary: After a restore any pointers from non-gc'd memory to
> gc'd memory will be a dangling pointer, if we count static variables
> marked with GTY as "gc'd memory" in this context.

Yes.  Don't keep pointers to GCed memory in non-GCed memory.  The GC/PCH
machinery assumes that it can see all pointers to the objects it
allocates.

> Right now, as far as I can tell, the filenames in the line_table are
> allocated from non-gc'd memory.  This complicates using gc.

This is the reverse case: pointers to non-GCed memory in GCed memory.
There is one case where this is allowed, which just happens to be the
case that you want: a pointer to a C string.

Reply via email to