[PUSHED] Fix off-by-one storage problem in irange_allocator.

Andrew MacLeod amacleod@redhat.com
Tue Oct 6 18:59:14 GMT 2020


On 10/6/20 2:41 PM, Andreas Schwab wrote:
> On Okt 06 2020, Andrew MacLeod via Gcc-patches wrote:
>
>> diff --git a/gcc/value-range.h b/gcc/value-range.h
>> index 7031a823138..02a952bf81f 100644
>> --- a/gcc/value-range.h
>> +++ b/gcc/value-range.h
>> @@ -668,13 +668,12 @@ irange_allocator::allocate (unsigned num_pairs)
>>     if (num_pairs < 2)
>>       num_pairs = 2;
>>   
>> -  struct newir {
>> -    irange range;
>> -    tree mem[2];
>> -  };
>> -  size_t nbytes = (sizeof (newir) + sizeof (tree) * 2 * (num_pairs - 1));
>> -  struct newir *r = (newir *) obstack_alloc (&m_obstack, nbytes);
>> -  return new (r) irange (r->mem, num_pairs);
>> +  size_t nbytes = sizeof (tree) * 2 * num_pairs;
>> +
>> +  // Allocate the irnge and  required memory for the vector
> Typo: irange
>
> Andreas.
>
Ha. Its all good now.     THIS is actually the final final FINAL patch 
which is going thru testing.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: one.diff
Type: text/x-patch
Size: 797 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20201006/f6f6dbed/attachment-0001.bin>


More information about the Gcc-patches mailing list