From e76f2171f98a9efd88c36dbd05a86984a17dec1b Mon Sep 17 00:00:00 2001 From: Bill Seurer Date: Tue, 23 Jan 2018 16:28:17 +0000 Subject: [PATCH] [PowerPC][asan] Fix asan tests to handle changed memory layouts In more recent Linux kernels with 47 bit VMAs the layout of virtual memory for powerpc64 changed causing the address sanitizer to not work properly. This patch fixes up a test case that was found to fail on some newer Fedora releases that use different address ranges. ref: https://reviews.llvm.org/D40907 llvm-svn: 323217 --- .../test/asan/TestCases/debug_ppc64_mapping.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/compiler-rt/test/asan/TestCases/debug_ppc64_mapping.cc b/compiler-rt/test/asan/TestCases/debug_ppc64_mapping.cc index 0db7956693c5..a67804023c0c 100644 --- a/compiler-rt/test/asan/TestCases/debug_ppc64_mapping.cc +++ b/compiler-rt/test/asan/TestCases/debug_ppc64_mapping.cc @@ -6,9 +6,9 @@ #include int main() { -// CHECK-PPC64: || `[{{0x180|0x0a0|0x040}}000000000, {{0x3ff|0x0ff}}fffffffff]` || HighMem || -// CHECK-PPC64: || `[{{0x130|0x034|0x028}}000000000, {{0x17f|0x09f|0x03f}}fffffffff]` || HighShadow || -// CHECK-PPC64: || `[{{0x120|0x024|0x024}}000000000, {{0x12f|0x033|0x027}}fffffffff]` || ShadowGap || +// CHECK-PPC64: || `[{{0x200|0x180|0x0a0|0x040}}000000000, {{0x7ff|0x3ff|0x0ff}}fffffffff]` || HighMem || +// CHECK-PPC64: || `[{{0x140|0x130|0x034|0x028}}000000000, {{0x1ff|0x17f|0x09f|0x03f}}fffffffff]` || HighShadow || +// CHECK-PPC64: || `[{{0x120|0x024|0x024}}000000000, {{0x12f|0x13f|0x033|0x027}}fffffffff]` || ShadowGap || // CHECK-PPC64: || `[{{0x100|0x020}}000000000, {{0x11f|0x023}}fffffffff]` || LowShadow || // CHECK-PPC64: || `[0x000000000000, {{0x0ff|0x01f}}fffffffff]` || LowMem || // @@ -19,8 +19,16 @@ int main() { } /* - * Three different signatures noted. -Newer kernel: (starting with kernel version 4.?) + * Several different signatures noted. + +Newer kernel: (Fedora starting with kernel version 4.?) +|| `[0x200000000000, 0x7fffffffffff]` || HighMem || +|| `[0x140000000000, 0x1fffffffffff]` || HighShadow || +|| `[0x120000000000, 0x13ffffffffff]` || ShadowGap || +|| `[0x100000000000, 0x11ffffffffff]` || LowShadow || +|| `[0x000000000000, 0x0fffffffffff]` || LowMem || + +Newer kernel: (Ubuntu starting with kernel version 4.?) || `[0x180000000000, 0x3fffffffffff]` || HighMem || || `[0x130000000000, 0x17ffffffffff]` || HighShadow || || `[0x120000000000, 0x12ffffffffff]` || ShadowGap ||