[PATCH] D35275: [Sanitizers] ASan/MSan/LSan allocators set errno on failure.

Matt Morehouse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 13 15:43:49 PDT 2017


morehouse added inline comments.


================
Comment at: lib/msan/msan_allocator.cc:269
+void *msan_aligned_alloc(uptr alignment, uptr size, StackTrace *stack) {
+  if (UNLIKELY(!IsPowerOfTwo(alignment) || (size & (alignment - 1)) != 0)) {
+    errno = errno_EINVAL;
----------------
vitalybuka wrote:
> why not just (size % alignmet == 0) and ignore "power of two" check?
From memalign and aligned_alloc man page:
> The  obsolete  function  memalign()  allocates size bytes and returns a
> pointer to the allocated memory.  The memory address will be a multiple
> of alignment, which must be a power of two.

> The  function aligned_alloc() is the same as memalign(), except for the
> added restriction that size should be a multiple of alignment.


https://reviews.llvm.org/D35275





More information about the llvm-commits mailing list