Mercurial > hg > CbC > CbC_gcc
view libmudflap/testsuite/libmudflap.c/pass51-frag.c @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | a06113de4d67 |
children |
line wrap: on
line source
/* Test object-spanning accesses. This is most conveniently done with mmap, thus the config.h specificity here. */ #include "../config.h" #include <unistd.h> #include <string.h> #ifdef HAVE_SYS_MMAN_H #include <sys/mman.h> #endif int main () { #ifndef MAP_ANONYMOUS #define MAP_ANONYMOUS MAP_ANON #endif #ifndef MAP_FAILED #define MAP_FAILED ((void *)-1) #endif #ifdef HAVE_MMAP void *p; unsigned pg = getpagesize (); int rc; p = mmap (NULL, 4 * pg, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); if (p == MAP_FAILED) return 1; memset (p, 0, 4*pg); rc = munmap (p, pg); if (rc < 0) return 1; memset (p+pg, 0, 3*pg); rc = munmap (p+pg, pg); if (rc < 0) return 1; memset (p+2*pg, 0, 2*pg); rc = munmap (p+2*pg, pg); if (rc < 0) return 1; memset (p+3*pg, 0, pg); rc = munmap (p+3*pg, pg); if (rc < 0) return 1; #endif return 0; }