diff options
author | Kostya Serebryany <kcc@google.com> | 2012-12-03 18:39:21 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2012-12-03 18:39:21 +0000 |
commit | 214b71506178f9705891f4452d8b41ff14919f5c (patch) | |
tree | 3ff3f8b679ddc1f4f11050b14a6d6acde19aaf7e | |
parent | f74c4034ddfa71b20277320924decaed44303426 (diff) | |
download | bcm5719-llvm-214b71506178f9705891f4452d8b41ff14919f5c.tar.gz bcm5719-llvm-214b71506178f9705891f4452d8b41ff14919f5c.zip |
[asan] two more bits for __sparc__
llvm-svn: 169141
-rw-r--r-- | compiler-rt/lib/asan/asan_linux.cc | 4 | ||||
-rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/compiler-rt/lib/asan/asan_linux.cc b/compiler-rt/lib/asan/asan_linux.cc index 2f89a1ef541..068f7b100b2 100644 --- a/compiler-rt/lib/asan/asan_linux.cc +++ b/compiler-rt/lib/asan/asan_linux.cc @@ -158,7 +158,9 @@ void GetStackTrace(StackTrace *stack, uptr max_s, uptr pc, uptr bp) { stack->trace[0] = pc; if ((max_s) > 1) { stack->max_size = max_s; -#if defined(__arm__) || defined(__powerpc__) || defined(__powerpc64__) +#if defined(__arm__) || \ + defined(__powerpc__) || defined(__powerpc64__) || \ + defined(__sparc__) _Unwind_Backtrace(Unwind_Trace, stack); // Pop off the two ASAN functions from the backtrace. stack->PopStackFrames(2); diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc index aeb291474d2..7525895ab83 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc @@ -36,6 +36,8 @@ static uptr patch_pc(uptr pc) { #if defined(__powerpc__) || defined(__powerpc64__) // PCs are always 4 byte aligned. return pc - 4; +#elif defined(__sparc__) + return pc - 8; #else return pc - 1; #endif |