Dávid Bolvanský via llvm-dev
2018-Apr-13 23:39 UTC
[llvm-dev] Malloc null checks, why sometimes are moved and sometimes not?
Hello, 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. Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180414/edf41ed0/attachment.html>
Krzysztof Parzyszek via llvm-dev
2018-Apr-13 23:51 UTC
[llvm-dev] Malloc null checks, why sometimes are moved and sometimes not?
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. In the first case, the pointer is returned from the function, which means that someone may actually want to access the allocated storage. -Krzysztof
陳韋任 via llvm-dev
2018-Apr-14 08:09 UTC
[llvm-dev] Malloc null checks, why sometimes are moved and sometimes not?
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