diff options
author | Max Ostapenko <m.ostapenko@partner.samsung.com> | 2015-10-21 10:51:03 +0300 |
---|---|---|
committer | Maxim Ostapenko <chefmax@gcc.gnu.org> | 2015-10-21 10:51:03 +0300 |
commit | 21d6106320c64bfd87ee81a3c0e342ba7697e0a3 (patch) | |
tree | 7f623e5c442aab66f9a863b9042ba31de703ef00 /libsanitizer | |
parent | 15ebe1fe46a75067b027128e35d75b17a5d4e299 (diff) | |
download | gcc-21d6106320c64bfd87ee81a3c0e342ba7697e0a3.tar.gz |
sanitizer_stacktrace.cc (GetCanonicFrame): Assume we compiled code with GCC when extracting the caller PC for ARM if...
libsanitizer/
* sanitizer_common/sanitizer_stacktrace.cc (GetCanonicFrame): Assume we
compiled code with GCC when extracting the caller PC for ARM if no
valid frame pointer is available.
From-SVN: r229115
Diffstat (limited to 'libsanitizer')
-rw-r--r-- | libsanitizer/ChangeLog | 6 | ||||
-rw-r--r-- | libsanitizer/sanitizer_common/sanitizer_stacktrace.cc | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog index 80ce1585857..2ed4cc32191 100644 --- a/libsanitizer/ChangeLog +++ b/libsanitizer/ChangeLog @@ -1,5 +1,11 @@ 2015-10-21 Maxim Ostapenko <m.ostapenko@partner.samsung.com> + * sanitizer_common/sanitizer_stacktrace.cc (GetCanonicFrame): Assume we + compiled code with GCC when extracting the caller PC for ARM if no + valid frame pointer is available. + +2015-10-21 Maxim Ostapenko <m.ostapenko@partner.samsung.com> + PR bootstrap/63888 Reapply: 2015-02-20 Jakub Jelinek <jakub@redhat.com> diff --git a/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc b/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc index 7b0c084b1a2..796d472a1eb 100644 --- a/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc +++ b/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc @@ -60,8 +60,8 @@ static inline uhwptr *GetCanonicFrame(uptr bp, // Nope, this does not look right either. This means the frame after next does // not have a valid frame pointer, but we can still extract the caller PC. // Unfortunately, there is no way to decide between GCC and LLVM frame - // layouts. Assume LLVM. - return bp_prev; + // layouts. Assume GCC. + return bp_prev - 1; #else return (uhwptr*)bp; #endif |