# Suppressions that work for both CLEAN and AVX2 implementations

{
   Exception while reading secret key. No signature is produced.
   Memcheck:Cond
   fun:PQCLEAN_FALCON*_*_trim_i8_decode
   fun:do_sign
   fun:PQCLEAN_FALCON*_*_crypto_sign_signature
}
{
   Exception while re-computing private basis (non-invertible f). No signature is produced.
   Memcheck:Cond
   src:vrfy.c:726 # fun:PQCLEAN_FALCON*_*_complete_private
   fun:do_sign
   fun:PQCLEAN_FALCON*_*_crypto_sign_signature
}
{
   Exception while re-computing private basis (large G coefficients). No signature is produced.
   Memcheck:Cond
   src:vrfy.c:739 # fun:PQCLEAN_FALCON*_*_complete_private
   fun:do_sign
   fun:PQCLEAN_FALCON*_*_crypto_sign_signature
}
{
   Rejection sampling on encoded signature size
   Memcheck:Cond
   fun:PQCLEAN_FALCON*_*_comp_encode
   fun:do_sign
   fun:PQCLEAN_FALCON*_*_crypto_sign_signature
}


# CLEAN implementation of sign.c 

{
   Rejection sampling to re-center discrete Gaussian distribution
   Memcheck:Cond
   # Wildcard to catch the while loop in fun:BerExp as well as line the if on src:sign.c:1155
   ...
   src:sign.c:1155 # fun:PQCLEAN_FALCON*_CLEAN_sampler
   ...
   fun:PQCLEAN_FALCON*_CLEAN_crypto_sign_signature
}
{
   Rejection sampling on signature length
   Memcheck:Cond
   src:sign.c:946 # fun:do_sign_dyn
   fun:PQCLEAN_FALCON*_CLEAN_sign_dyn
   fun:do_sign
   fun:PQCLEAN_FALCON*_CLEAN_crypto_sign_signature
}
{
   Rejection sampling on encoded signature size
   Memcheck:Cond
   fun:PQCLEAN_FALCON*_CLEAN_comp_encode
   fun:do_sign
   fun:PQCLEAN_FALCON*_CLEAN_crypto_sign_signature
}


# AVX2 implementation of sign.c 

{
   Rejection sampling to re-center discrete Gaussian distribution
   Memcheck:Cond
   # Wildcard to catch the while loop in fun:BerExp as well as line the if on src:sign.c:1153
   ...
   src:sign.c:1213 # fun:PQCLEAN_FALCON*_AVX2_sampler
   ...
   fun:PQCLEAN_FALCON*_AVX2_crypto_sign_signature
}
{
   Rejection sampling on signature length
   Memcheck:Cond
   src:sign.c:939 # fun:do_sign_dyn
   fun:PQCLEAN_FALCON*_AVX2_sign_dyn
   fun:do_sign
   fun:PQCLEAN_FALCON*_AVX2_crypto_sign_signature
}
