+2007-09-07 Roman Zippel <zippel@linux-m68k.org>
+
+ boehm.c (mark_reference_fields): Move misaligned pointer check
+ after JREFERENCE_TYPE_P test
+
2007-09-06 Roman Zippel <zippel@linux-m68k.org>
* boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
offset = int_byte_position (field);
size_bytes = int_size_in_bytes (TREE_TYPE (field));
- if (offset % (POINTER_SIZE / BITS_PER_UNIT))
- {
- *all_bits_set = -1;
- *pointer_after_end = 1;
- break;
- }
-
if (JREFERENCE_TYPE_P (TREE_TYPE (field))
/* An `object' of type gnu.gcj.RawData is actually non-Java
data. */
we already covered, then we are doomed. */
gcc_assert (offset > *last_view_index);
+ if (offset % (POINTER_SIZE / BITS_PER_UNIT))
+ {
+ *all_bits_set = -1;
+ *pointer_after_end = 1;
+ break;
+ }
+
count = offset * BITS_PER_UNIT / POINTER_SIZE;
size_words = size_bytes * BITS_PER_UNIT / POINTER_SIZE;