# The rules in this file are only applied at compile time.
# Because the Chrome buildsystem does not automatically touch the files
# mentioned here, changing this file requires clobbering all MSan bots.
#
# Please think twice before you add or remove these rules.

# False positive in ffmpeg due to assembly code. http://crbug.com/344505
fun:ff_get_cpu_flags_x86

# Uninit in zlib. http://crbug.com/116277
fun:*MOZ_Z_deflate*

# Uninit in zlib with SIMD intrinsic http://crbug.com/426868
fun:crc_fold512_to_32

# Uninit in OSMesa. http://crbug.com/347967
fun:unpack_RGBA8888
fun:unpack_RGB888

# False positives due to use of linux_syscall_support. http://crbug.com/394028
src:*/breakpad/src/*
src:*/components/crash/app/breakpad_linux.cc

# False positives due to an MSan bug. http://crbug.com/418986
fun:*SchedGetParamThread*
