summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2013-10-11 11:14:20 +0000
committerAlexey Samsonov <samsonov@google.com>2013-10-11 11:14:20 +0000
commit0cd96165f19cdd98d23abaafd707a5deeb2fc5b0 (patch)
treea2c2b51413baf9a57949aa0882e4147bc0f52905
parentcc00dd4d5db1d6db2a715b09019e17e34b200f9b (diff)
downloadbcm5719-llvm-0cd96165f19cdd98d23abaafd707a5deeb2fc5b0.tar.gz
bcm5719-llvm-0cd96165f19cdd98d23abaafd707a5deeb2fc5b0.zip
[Sanitizer] StackTrace: kill CopyTo and reimplement CopyFrom
llvm-svn: 192441
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc6
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h16
2 files changed, 8 insertions, 14 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc
index a87b647ad45..6bc785eec5d 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc
@@ -13,6 +13,7 @@
#include "sanitizer_common.h"
#include "sanitizer_flags.h"
+#include "sanitizer_libc.h"
#include "sanitizer_procmaps.h"
#include "sanitizer_stacktrace.h"
#include "sanitizer_symbolizer.h"
@@ -34,6 +35,11 @@ uptr StackTrace::GetPreviousInstructionPc(uptr pc) {
#endif
}
+void StackTrace::CopyFrom(const uptr *src, uptr src_size) {
+ size = Min(src_size, kStackTraceMax);
+ internal_memcpy(trace, src, sizeof(trace[0]) * size);
+}
+
static void PrintStackFramePrefix(uptr frame_num, uptr pc) {
Printf(" #%zu 0x%zx", frame_num, pc);
}
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h
index b9ada16d06b..65daa798224 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h
@@ -36,20 +36,8 @@ struct StackTrace {
uptr trace[kStackTraceMax];
static void PrintStack(const uptr *addr, uptr size, bool symbolize,
SymbolizeCallback symbolize_callback);
- void CopyTo(uptr *dst, uptr dst_size) {
- for (uptr i = 0; i < size && i < dst_size; i++)
- dst[i] = trace[i];
- for (uptr i = size; i < dst_size; i++)
- dst[i] = 0;
- }
-
- void CopyFrom(uptr *src, uptr src_size) {
- size = src_size;
- if (size > kStackTraceMax) size = kStackTraceMax;
- for (uptr i = 0; i < size; i++) {
- trace[i] = src[i];
- }
- }
+
+ void CopyFrom(const uptr *src, uptr src_size);
void FastUnwindStack(uptr pc, uptr bp, uptr stack_top, uptr stack_bottom,
uptr max_depth);
OpenPOWER on IntegriCloud