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