]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merge r9429 (map_unaligned porting) from the DARWIN branch.
authorNicholas Nethercote <njn@valgrind.org>
Mon, 16 Mar 2009 04:29:12 +0000 (04:29 +0000)
committerNicholas Nethercote <njn@valgrind.org>
Mon, 16 Mar 2009 04:29:12 +0000 (04:29 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9430

none/tests/map_unaligned.c
none/tests/map_unaligned.stderr.exp

index 8e8a5e98a30aca2e99e97508a947ed0ed8aa99bf..f3d47346e96a86d6a7158bc0b1b25f08076549e5 100644 (file)
@@ -4,44 +4,35 @@
 
 int main(int argc, char **argv)
 {
-  void *p1;
-  void *p2;
+   void *p1;
+   void *p2;
 
-  if ( ( p1 = mmap( 0, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) == MAP_FAILED )
-    {
-      perror( "mmap" );
+   if ( ( p1 = mmap( 0, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) == MAP_FAILED )
+   {
+      perror( "aligned mmap failed" );
       exit( 1 );
-    }
+   }
 
-  if ( munmap( p1, 4096 ) != 0 )
-    {
-      perror( "munmap" );
+   if ( munmap( p1, 4096 ) != 0 )
+   {
+      perror( "aligned munmap failed" );
       exit( 1 );
-    }
-
-  if ( ( p2 = mmap( p1 + 1, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) == MAP_FAILED )
-    {
-      perror( "mmap" );
-      exit( 1 );
-    }
-
-  if ( munmap( p2, 4096 ) != 0 )
-    {
-      perror( "munmap" );
-      exit( 1 );
-    }
-
-  if ( ( p2 = mmap( p1 + 1, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0 ) ) == MAP_FAILED )
-    {
-      perror( "mmap" );
+   }
+
+   // This fails because MAP_FIXED is specified and p1+1 isn't page-aligned.
+   // (On Linux, just non-page-alignment is enough for failure, but on Darwin
+   // MAP_FIXED has to also be specified.)
+   if ( ( p2 = mmap( p1 + 1, 4096, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0 ) ) == MAP_FAILED )
+   {
+      perror( "unaligned mmap failed" );
       exit( 1 );
-    }
+   }
 
-  if ( munmap( p2, 4096 ) != 0 )
-    {
-      perror( "munmap" );
+   if ( munmap( p2, 4096 ) != 0 )
+   {
+      perror( "unaligned munmap failed" );
       exit( 1 );
-    }
+   }
 
-  exit( 0 );
+   exit( 0 );
 }
index bfd7867db4585ecb14562a625072c7a81820ec3a..4599826848ebe1ee29d64930bb608f9bdaa591bc 100644 (file)
@@ -1,3 +1,3 @@
 
-mmap: Invalid argument
+unaligned mmap failed: Invalid argument