[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