summaryrefslogtreecommitdiff
path: root/libsanitizer/sanitizer_common
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2012-11-16 12:02:29 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2012-11-16 04:02:29 -0800
commitd1caed1484bef4846406d7c42f9e5bbfb7c58710 (patch)
treec820b9a2e4796f64daf0e40ac9e60c9dc6588120 /libsanitizer/sanitizer_common
parent8108af84a5783a1c7e328a8be2eef8330517c224 (diff)
downloadgcc-d1caed1484bef4846406d7c42f9e5bbfb7c58710.tar.gz
Define/use hardware pointer type for stack unwind
PR other/55333 * include/sanitizer/common_interface_defs.h (uhwptr): New type for hardware pointer. * sanitizer_common/sanitizer_stacktrace.cc (StackTrace::FastUnwindStack): Replace uptr with uhwptr for stack unwind. From-SVN: r193557
Diffstat (limited to 'libsanitizer/sanitizer_common')
-rw-r--r--libsanitizer/sanitizer_common/sanitizer_stacktrace.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc b/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc
index f6d7a0966c2..915c4b8050a 100644
--- a/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc
+++ b/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc
@@ -120,18 +120,18 @@ void StackTrace::FastUnwindStack(uptr pc, uptr bp,
uptr stack_top, uptr stack_bottom) {
CHECK(size == 0 && trace[0] == pc);
size = 1;
- uptr *frame = (uptr*)bp;
- uptr *prev_frame = frame;
+ uhwptr *frame = (uhwptr *)bp;
+ uhwptr *prev_frame = frame;
while (frame >= prev_frame &&
- frame < (uptr*)stack_top - 2 &&
- frame > (uptr*)stack_bottom &&
+ frame < (uhwptr *)stack_top - 2 &&
+ frame > (uhwptr *)stack_bottom &&
size < max_size) {
- uptr pc1 = frame[1];
+ uhwptr pc1 = frame[1];
if (pc1 != pc) {
- trace[size++] = pc1;
+ trace[size++] = (uptr) pc1;
}
prev_frame = frame;
- frame = (uptr*)frame[0];
+ frame = (uhwptr *)frame[0];
}
}