[llvm-dev] Malloc null checks, why sometimes are moved and sometimes not?

陳韋任 via llvm-dev llvm-dev at lists.llvm.org
Sat Apr 14 01:09:47 PDT 2018


2018-04-14 7:51 GMT+08:00 Krzysztof Parzyszek via llvm-dev
<llvm-dev at lists.llvm.org>:
> On 4/13/2018 6:39 PM, Dávid Bolvanský via llvm-dev wrote:
>>
>>
>> Here is simple test code:
>> https://godbolt.org/g/mjAUpu
>>
>> LLVM generally assumes that malloc never fails.
>>
>> But I dont understand difference between these two example functions - and
>> why null check was not removed in f1, since in f2 it was removed.
>
>
> That's because the return value from malloc is discarded in f2. In that case
> it simply doesn't matter if the malloc happened or not, and can be assumed
> to have succeeded.

Wouldn't such assumption be too aggressive?


-- 
Wei-Ren Chen (陳韋任)
Homepage: https://people.cs.nctu.edu.tw/~chenwj


More information about the llvm-dev mailing list