[PATCH] D29586: [lsan] Enable LSan for arm Linux

Aleksey Shlyapnikov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 3 11:02:59 PDT 2017


alekseyshl added a comment.

I have no further comments and defer lgtm to folks who know something about the unwinder stuff.



================
Comment at: lib/lsan/lsan_common.h:151
+// size of allocated array.
+static inline bool IsItaniumABICookie(uptr chunk_beg, uptr chunk_size,
+                                      uptr addr) {
----------------
IsItaniumABIArrayCookie


================
Comment at: lib/lsan/lsan_common.h:162
+// };
+static inline bool IsARMABICookie(uptr chunk_beg, uptr chunk_size, uptr addr) {
+  return chunk_size == 2 * sizeof(uptr) && chunk_beg + chunk_size == addr &&
----------------
IsARMABIArrayCookie


================
Comment at: lib/sanitizer_common/sanitizer_linux.cc:1265
+    return -EINVAL;
+  CHECK_EQ(0, (uptr)child_stack % 16);
+  child_stack = (char *)child_stack - 2 * sizeof(unsigned int);
----------------
Isn't stack 4 bytes aligned on arm32?


================
Comment at: lib/sanitizer_common/sanitizer_linux.cc:1293
+
+  __asm__ __volatile__("push    {r4, r7}\n"
+
----------------
Why do we push them to stack? Aren't all the params for swi passed in registers?


Repository:
  rL LLVM

https://reviews.llvm.org/D29586





More information about the llvm-commits mailing list