{
   <sqlite3-malloc-possible>
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc
   ...
   obj:*libsqlite3.so.*
   ...
}

{
   <sqlite3-malloc-definite>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   ...
   obj:*libsqlite3.so.*
   ...
}

{
   <sqlite3-realloc>
   Memcheck:Leak
   match-leak-kinds: possible
   fun:realloc
   ...
   obj:*libsqlite3.so.*
   ...
}

{
   <gtest_says_to_ignore_this_1>
   Memcheck:Value8
   ...
   fun:*PrintByteSegmentInObjectTo*
   ...
}

{
   <gtest_says_to_ignore_this_2>
   Memcheck:Cond
   ...
   fun:*PrintByteSegmentInObjectTo*
   ...
}

{
   <pgasus_topology_hwloc>
   Memcheck:Leak
   match-leak-kinds: definite
   ...
   obj:*libhwloc.so*
   fun:hwloc_topology_init
   fun:*Topology*
}

# This is a false positive when evaluating if a particular std::optional is set:
{
   <False_positive_optional>
   Memcheck:Cond
   fun:_ZN7hyrise14encode_segmentENS_12EncodingTypeENS_6detail8DataTypeERKSt10shared_ptrIKNS_16BaseValueSegmentEESt8optionalINS_21VectorCompressionTypeEE
}

# Within LZ4 segments, an std::optional storing an index is conditionally accessed when set. The check is not directly
# on the std::optional, but via an indirection (see variable `use_caching` which is only true, when the std::optional
# is set). Valgrind appears to misinterpret this conditional access.
{
   <False_positive_optional_LZ4Segment>
   Memcheck:Cond
   fun:_ZNK6hyrise10LZ4SegmentINSt7__cxx1112basic_stringIcSt11char_traitsIcEN5boost9container3pmr21polymorphic_allocatorIcEEEEE10decompressERKNS_11ChunkOffsetESt8optionalImERSt6vectorIcSaIcEE
}

# Similar to the suppression introduced via https://github.com/hyrise/hyrise/pull/1851#issuecomment-618937388, we need
# to suppress a conditional jump check. We removed the previous suppression as it has not been triggered by GoogleTest
# anymore.
{
   <PR_2458_memcheck>
   Memcheck:Cond
   ...
   fun:_ZN7testing8internal20PrintBytesInObjectToEPKhmPSo
}

# Similar to the suppression introduced via https://github.com/hyrise/hyrise/pull/1851#issuecomment-618937388, we need
# to suppress a conditional jump check. Seems to be an issue with Valgrind and GoogleTest, see
# https://github.com/google/googletest/issues/3805.
{
   <PR_2448_memcheck>>
   Memcheck:Value8
   ...
   fun:_ZN7testing8internal20PrintBytesInObjectToEPKhmPSo
}

# When building with link-time optimization, Valgrind sees a read of a potentially uninitialized value, which should be
# a false positive.
{
   <False_positive_std_optional_access_with_LTO_builds>
   Memcheck:Cond
   fun:_ZN6hyrise21OperatorJoinPredicate15from_expressionERKNS_18AbstractExpressionERKNS_15AbstractLQPNodeES6_
}
