[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