Marius Vollmer <[EMAIL PROTECTED]> writes:

> Here is what is going on: the CELL_P predicate is used during the
> conservative scanning of the GC to decide whether a random word can
> possibly be a non-immediate SCM value.  Non-immediate values are the
> ones that point into the heap.  The type tag for such a non-immediate
> value is "lower three bits zero".  On 32-bit architectures, a cell is
> 8 bytes, which means that a non-immediate value is always aligned to a
> cell.  On 64-bit machines, a cell is 16 bytes, and that means that a
> word with "lower three bits zero" can still be invalid because it
> points into the middle of a cell.
>
> (We have similar check already for double-cells, which are 16 bytes on
> 32-bit machines.)

That's great, but I believe there's one detail still to be explained:
why is it a problem with GCC 4 but not with GCC 3?

    Neil



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

Reply via email to