From ebe9df675a6f63a6a729da7e20c97d037b3fb8a9 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Tue, 6 May 2014 17:46:05 +0000 Subject: 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 --- gcc/java/ChangeLog | 5 +++++ gcc/java/boehm.c | 18 +++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'gcc/java') diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 93c634d..1c357fe 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +2014-05-06 Richard Sandiford + + * boehm.c (mark_reference_fields): Don't update the mask when + setting pointer_after_end. + 2014-05-06 Kenneth Zadeck Mike Stump Richard Sandiford 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 -- cgit v1.1