boehm.c (mark_reference_fields): Don't update the mask when setting pointer_after_end.

gcc/java/
	* boehm.c (mark_reference_fields): Don't update the mask when
	setting pointer_after_end.

From-SVN: r210119
This commit is contained in:
Richard Sandiford 2014-05-06 17:46:05 +00:00 committed by Richard Sandiford
parent aa3a12d66e
commit ebe9df675a
2 changed files with 14 additions and 9 deletions

View file

@ -1,3 +1,8 @@
2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
* boehm.c (mark_reference_fields): Don't update the mask when
setting pointer_after_end.
2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
Mike Stump <mikestump@comcast.net>
Richard Sandiford <rdsandiford@googlemail.com>

View file

@ -101,17 +101,17 @@ mark_reference_fields (tree field,
*last_set_index = count;
/* First word in object corresponds to most significant byte of
bitmap.
In the case of a multiple-word record, we set pointer
bits for all words in the record. This is conservative, but the
size_words != 1 case is impossible in regular java code. */
for (i = 0; i < size_words; ++i)
*mask = wi::set_bit (*mask, ubit - count - i - 1);
if (count >= ubit - 2)
*pointer_after_end = 1;
else
/* First word in object corresponds to most significant byte of
bitmap.
In the case of a multiple-word record, we set pointer
bits for all words in the record. This is conservative, but the
size_words != 1 case is impossible in regular java code. */
for (i = 0; i < size_words; ++i)
*mask = wi::set_bit (*mask, ubit - count - i - 1);
/* If we saw a non-reference field earlier, then we can't
use the count representation. We keep track of that in