diff --git a/compiler-rt/lib/hwasan/hwasan_report.cpp b/compiler-rt/lib/hwasan/hwasan_report.cpp index a4ae2810818b855555a5517361ed4e17b70f5efc..1bbe681c659095ffc9d354c2f77fd4732127f10d 100644 --- a/compiler-rt/lib/hwasan/hwasan_report.cpp +++ b/compiler-rt/lib/hwasan/hwasan_report.cpp @@ -794,9 +794,10 @@ void ReportTagMismatch(StackTrace *stack, uptr tagged_addr, uptr access_size, if (registers_frame) { ReportRegisters(registers_frame, pc); - ReportMemoryNearRegisters(registers_frame, - reinterpret_cast(registers_frame) + 256, - pc); // OHOS_LOCAL + if (flags()->memory_around_register_size) + ReportMemoryNearRegisters(registers_frame, + reinterpret_cast(registers_frame) + 256, + pc); // OHOS_LOCAL } ReportErrorSummary(bug_type, stack); @@ -838,7 +839,7 @@ void PrintMemoryAroundAddress(MemoryMappingLayout &proc_maps, int reg_num, void ReportMemoryNearRegisters(uptr *frame, uptr sp, uptr pc) { Printf("Memory near registers:\n"); MemoryMappingLayout proc_maps(/*cache_enabled*/ true); - for (int i = 0; i <= 31; ++i) { + for (int i = 0; i <= 30; ++i) { PrintMemoryAroundAddress(proc_maps, i, UntagAddr(frame[i]), flags()->memory_around_register_size); }