[compiler-rt] r221929 - [ASan] Really fix zero_page_pc test for PowerPC

Jay Foad jay.foad at gmail.com
Thu Nov 13 13:53:00 PST 2014


Author: foad
Date: Thu Nov 13 15:53:00 2014
New Revision: 221929

URL: http://llvm.org/viewvc/llvm-project?rev=221929&view=rev
Log:
[ASan] Really fix zero_page_pc test for PowerPC

Summary:
As a follow-up to D6167, this patch fixes the test to account for
another difference between PowerPC and x86 systems.

On x86 if you branch to an invalid address, you get a SIGSEGV with PC
set to the invalid address (and si_addr in the siginfo struct also set
to the same address).

On PowerPC, you get a SIGSEGV with PC pointing at the branch
instruction, but si_addr set to the invalid address.

You can see this difference if you run the test case under gdb.

Reviewers: kcc, glider, samsonov

Reviewed By: samsonov

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D6226

Modified:
    compiler-rt/trunk/test/asan/TestCases/zero_page_pc.cc

Modified: compiler-rt/trunk/test/asan/TestCases/zero_page_pc.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/zero_page_pc.cc?rev=221929&r1=221928&r2=221929&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/zero_page_pc.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/zero_page_pc.cc Thu Nov 13 15:53:00 2014
@@ -8,6 +8,8 @@ typedef void void_f();
 int main() {
   void_f *func = (void_f *)0x4;
   func();
-  // CHECK: {{AddressSanitizer: SEGV.*(pc.*0004)}}
+  // x86 reports the SEGV with both address=4 and pc=4.
+  // PowerPC64 reports it with address=4 but pc still in main().
+  // CHECK: {{AddressSanitizer: SEGV.*(address|pc) 0x0*4}}
   return 0;
 }





More information about the llvm-commits mailing list