[llvm] r185218 - Eliminate an assortment of undefined behavior.

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Jun 28 14:31:26 PDT 2013


On Jun 28, 2013, at 2:28 PM, Benjamin Kramer <benny.kra at gmail.com> wrote:

> 
> On 28.06.2013, at 23:10, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
> 
>> Author: stoklund
>> Date: Fri Jun 28 16:10:25 2013
>> New Revision: 185218
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=185218&view=rev
>> Log:
>> Eliminate an assortment of undefined behavior.
>> 
>> Hopefully, this fixes the PPC64 buildbots.
>> 
>> Modified:
>>   llvm/trunk/lib/Support/BlockFrequency.cpp
>> 
>> Modified: llvm/trunk/lib/Support/BlockFrequency.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/BlockFrequency.cpp?rev=185218&r1=185217&r2=185218&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Support/BlockFrequency.cpp (original)
>> +++ llvm/trunk/lib/Support/BlockFrequency.cpp Fri Jun 28 16:10:25 2013
>> @@ -47,9 +47,13 @@ static uint64_t div96bit(uint64_t W[2],
>>  uint64_t x = W[1];
>>  unsigned i;
>> 
>> +  // This is really a 64-bit division.
>> +  if (!x)
>> +    return y / D;
> 
> This should never happen if the mul overflow checking code works right. An assertion would be sufficient.

But it doesn’t ;-)

I am fixing it.

Thanks,
/jakob





More information about the llvm-commits mailing list