need to allow SkShmC segments, too.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15221
NSegment *seg = nsegments + ix;
- aspacem_assert(seg->kind == SkFileC || seg->kind == SkAnonC);
+ aspacem_assert(seg->kind == SkFileC || seg->kind == SkAnonC ||
+ seg->kind == SkShmC);
aspacem_assert(delta > 0 && VG_IS_PAGE_ALIGNED(delta)) ;
xStart = seg->end+1;
if (iLo != iHi)
return False;
- if (nsegments[iLo].kind != SkFileC && nsegments[iLo].kind != SkAnonC)
+ if (nsegments[iLo].kind != SkFileC && nsegments[iLo].kind != SkAnonC &&
+ nsegments[iLo].kind != SkShmC)
return False;
sres = ML_(am_do_relocate_nooverlap_mapping_NO_NOTIFY)
mremap2.stderr.exp mremap2.stdout.exp mremap2.vgtest \
mremap3.stderr.exp mremap3.stdout.exp mremap3.vgtest \
mremap4.stderr.exp mremap4.vgtest \
+ mremap5.stderr.exp mremap5.vgtest \
pthread-stack.stderr.exp pthread-stack.vgtest \
stack-overflow.stderr.exp stack-overflow.vgtest
mremap2 \
mremap3 \
mremap4 \
+ mremap5 \
pthread-stack \
stack-overflow
--- /dev/null
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+
+int main()
+{
+ int shmid = shmget(IPC_PRIVATE, 100 * 4096,
+ IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR);
+ assert(shmid != -1);
+
+ void *addr = shmat(shmid, NULL, 0);
+ assert(addr != (void *)-1);
+
+ addr = mremap(addr, 100 * 4096, 400 * 4096, MREMAP_MAYMOVE);
+ assert(addr != (void *)-1);
+
+ return 0;
+}
--- /dev/null
+prog: mremap5
+vgopts: -q