[PATCH] Test failures in GCC ASan testsuite on ARM Linux due to FP format mismatch between libsanitizer and GCC.
Alexey Samsonov
vonosmas at gmail.com
Tue Jul 29 16:41:45 PDT 2014
================
Comment at: lib/sanitizer_common/sanitizer_stacktrace.cc:40
@@ +39,3 @@
+// Check if given pointer points into allocated stack area.
+static inline int IsValidFrame(uptr frame, uptr stack_top, uptr stack_bottom) {
+ return frame > stack_bottom && frame < stack_top - 2;
----------------
this function returns bool
================
Comment at: lib/sanitizer_common/sanitizer_stacktrace.cc:65
@@ -44,3 +64,3 @@
size = 1;
- uhwptr *frame = (uhwptr *)bp;
- uhwptr *prev_frame = frame - 1;
+ stack_bottom = Max(stack_bottom, (uptr)&size);
+ uhwptr *frame = GetCanonicFrame(bp, stack_top, stack_bottom);
----------------
This line is wrong. It assumes that FastUnwindStack() is called in the same thread for which we provide stack_top/stack_bottom. I believe this function describes a generic unwinding algorithm, and there's no place for hack like this here.
Why do you need it?
http://reviews.llvm.org/D4692
More information about the llvm-commits
mailing list