diff options
| author | Alexander Potapenko <glider@google.com> | 2012-08-15 13:23:03 +0000 |
|---|---|---|
| committer | Alexander Potapenko <glider@google.com> | 2012-08-15 13:23:03 +0000 |
| commit | 07ea07c3ca1f43c02fb8ece6e00f8d2eec6e3155 (patch) | |
| tree | 4b913f1168ef735464359dc10c729d7fd46abae2 /compiler-rt/lib/asan/asan_stack.cc | |
| parent | 20f9fcc285b15bad193b46365af9f02312d9c546 (diff) | |
| download | bcm5719-llvm-07ea07c3ca1f43c02fb8ece6e00f8d2eec6e3155.tar.gz bcm5719-llvm-07ea07c3ca1f43c02fb8ece6e00f8d2eec6e3155.zip | |
Patch the frame address regardless of the frame number.
llvm-svn: 161946
Diffstat (limited to 'compiler-rt/lib/asan/asan_stack.cc')
| -rw-r--r-- | compiler-rt/lib/asan/asan_stack.cc | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/compiler-rt/lib/asan/asan_stack.cc b/compiler-rt/lib/asan/asan_stack.cc index 8b432e48c84..1099f32fa13 100644 --- a/compiler-rt/lib/asan/asan_stack.cc +++ b/compiler-rt/lib/asan/asan_stack.cc @@ -48,9 +48,7 @@ static uptr patch_pc(uptr pc) { #if defined(ASAN_USE_EXTERNAL_SYMBOLIZER) void AsanStackTrace::PrintStack(uptr *addr, uptr size) { for (uptr i = 0; i < size && addr[i]; i++) { - uptr pc = addr[i]; - if (i < size - 1 && addr[i + 1]) - pc = patch_pc(pc); + uptr pc = patch_pc(addr[i]); char buff[4096]; ASAN_USE_EXTERNAL_SYMBOLIZER((void*)pc, buff, sizeof(buff)); // We can't know anything about the string returned by external @@ -65,9 +63,7 @@ void AsanStackTrace::PrintStack(uptr *addr, uptr size) { ProcessMaps proc_maps; uptr frame_num = 0; for (uptr i = 0; i < size && addr[i]; i++) { - uptr pc = addr[i]; - if (i < size - 1 && addr[i + 1]) - pc = patch_pc(pc); + uptr pc = patch_pc(addr[i]); AddressInfo addr_frames[64]; uptr addr_frames_num = 0; if (flags()->symbolize) { |

