# 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

# Benign uninits in zlib.
# http://crbug.com/116277
fun:*MOZ_Z_deflate*
# http://crbug.com/418383
fun:longest_match

# 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*
