# Valgrind does not recognize the ashmen ioctl() calls on ARM64, so it assumes that a size
# parameter is a pointer.
{
   ashmem ioctl
   Memcheck:Param
   ioctl(generic)
   ...
   fun:ioctl
   fun:ashmem_create_region
}

# It seems that on ARM64 Valgrind considers the canary value used by the Clang stack protector to
# be an uninitialized value.
{
   jemalloc chunk_alloc_cache
   Memcheck:Cond
   fun:je_chunk_alloc_cache
}

# The VectorImpl class does not hold a pointer to the allocated SharedBuffer structure, but to the
# beginning of the data, which is effectively an interior pointer. Valgrind has limitations when
# dealing with interior pointers.
{
   VectorImpl
   Memcheck:Leak
   match-leak-kinds:possible
   fun:malloc
   # The wildcards make this rule work both for 32-bit and 64-bit environments.
   fun:_ZN7android12SharedBuffer5allocE?
   fun:_ZN7android10VectorImpl5_growE??
}

# Clang/LLVM uses memcpy for *x = *y, even though x == y (which is undefined behavior). Ignore.
# b/29279679, https://llvm.org/bugs/show_bug.cgi?id=11763
{
   MemCpySelfAssign
   Memcheck:Overlap
   fun:memcpy
   fun:je_tsd_set
   fun:je_tsd_fetch
   fun:je_malloc_tsd_boot0
}

# Setenv is known-leaking when overwriting mappings. This is triggered by re-initializing
# ANDROID_DATA. Ignore all setenv leaks.
{
   SetenvAndroidDataReinit
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:setenv
}
