Displaying 2 results from an estimated 2 matches for "svhqkl".
2017 Jul 21
2
Which assumptions do llvm.memcpy/memmove/memset.* make when the count is 0?
> So, the pointer arguments of memcpy *shall* (a violation of a shall
> clause is UB, per §4/2) have valid values, even though the function will
> copy zero characters.
This is true in C but the question was about LLVM intrinsics.
Since the LangRef does not mention any such restriction, I would assume
that memcpy(0,0,0) is not UB in LLVM. If it is UB then we must update
the LangRef
2017 Jul 21
3
Which assumptions do llvm.memcpy/memmove/memset.* make when the count is 0?
...at whereas GCC exploits the tricky definition of memcpy(), LLVM
> at present doesn't appear to:
>
> https://godbolt.org/g/8uxvBQ
>
> In fact LLVM doesn't even assume the pointer is non-null in a case where I'd
> argue that it should:
>
> https://godbolt.org/g/svHQKL
>
> John
>
>
>
> On 07/20/2017 10:00 PM, John Regehr via llvm-dev wrote:
>>>
>>> So, the pointer arguments of memcpy *shall* (a violation of a shall
>>> clause is UB, per §4/2) have valid values, even though the function will
>>> copy zero chara...