aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/boehm.c
diff options
context:
space:
mode:
authorRichard Sandiford <r.sandiford@uk.ibm.com>2014-05-06 17:46:05 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2014-05-06 17:46:05 +0000
commitebe9df675a6f63a6a729da7e20c97d037b3fb8a9 (patch)
tree22999cc24aa4db16e18630f8acc4e25f4649b867 /gcc/java/boehm.c
parentaa3a12d66e691508961992aaba0d13914c274afe (diff)
downloadgcc-ebe9df675a6f63a6a729da7e20c97d037b3fb8a9.zip
gcc-ebe9df675a6f63a6a729da7e20c97d037b3fb8a9.tar.gz
gcc-ebe9df675a6f63a6a729da7e20c97d037b3fb8a9.tar.bz2
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
Diffstat (limited to 'gcc/java/boehm.c')
-rw-r--r--gcc/java/boehm.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/java/boehm.c b/gcc/java/boehm.c
index 191ab86..10b6d64 100644
--- a/gcc/java/boehm.c
+++ b/gcc/java/boehm.c
@@ -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