1# Valgrind suppression file for NumPy & SciPy errors and leaks in pybind11 tests
2#
3# On updating a dependency, to get a list of "default" leaks in e.g. NumPy, run
4# `PYTHONMALLOC=malloc valgrind --leak-check=full --show-leak-kinds=definite,indirect python3.9-dbg -c "import numpy"`
5# To use these suppression files, add e.g. `--suppressions=valgrind-numpy-scipy.supp`
6
7{
8   Leaks when importing NumPy
9   Memcheck:Leak
10   fun:malloc
11   fun:_PyMem_RawMalloc
12   fun:PyObject_Malloc
13   fun:_PyObject_GC_Alloc
14   fun:_PyObject_GC_Malloc
15   fun:_PyObject_GC_NewVar
16   fun:tuple_alloc
17   fun:PyTuple_Pack
18   ...
19   fun:__pyx_pymod_exec_*
20}
21
22{
23   Leaks when importing NumPy (bis)
24   Memcheck:Leak
25   fun:malloc
26   fun:_PyMem_RawMalloc
27   fun:PyObject_Malloc
28   fun:_PyObject_New
29   fun:PyCode_NewWithPosOnlyArgs
30   fun:PyCode_New
31   ...
32   fun:__pyx_pymod_exec_*
33}
34
35{
36   Leaks when importing NumPy (ter)
37   Memcheck:Leak
38   fun:malloc
39   fun:_PyMem_RawMalloc
40   fun:PyObject_Malloc
41   fun:_PyObject_GC_Alloc
42   fun:_PyObject_GC_Malloc
43   fun:_PyObject_GC_NewVar
44   fun:tuple_alloc
45   fun:_PyTuple_FromArray
46   fun:_PyObject_MakeTpCall
47   fun:_PyObject_VectorcallTstate
48   fun:PyObject_Vectorcall
49   fun:call_function
50   fun:_PyEval_EvalFrameDefault
51   fun:_PyEval_EvalFrame
52   fun:function_code_fastcall
53   fun:_PyFunction_Vectorcall
54}
55
56{
57   Leaks when importing NumPy (quater)
58   Memcheck:Leak
59   fun:malloc
60   fun:_PyMem_RawMalloc
61   fun:PyObject_Malloc
62   fun:_PyObject_GC_Alloc
63   fun:_PyObject_GC_Malloc
64   fun:_PyObject_GC_NewVar
65   fun:tuple_alloc
66   fun:_PyTuple_FromArray
67   fun:_PyObject_MakeTpCall
68   fun:_PyObject_VectorcallTstate
69   fun:_PyObject_CallFunctionVa
70   fun:PyObject_CallFunction
71   fun:PyImport_Import
72}
73
74{
75   Leaks when importing NumPy (quinquies)
76   Memcheck:Leak
77   fun:malloc
78   fun:_PyMem_RawMalloc
79   fun:PyObject_Malloc
80   fun:_PyObject_GC_Alloc
81   fun:_PyObject_GC_Malloc
82   fun:_PyObject_GC_NewVar
83   fun:tuple_alloc
84   fun:PyTuple_New
85   fun:r_object
86   fun:r_object
87   fun:r_object
88   fun:r_object
89}
90
91{
92   Leaks when importing NumPy (sexies)
93   Memcheck:Leak
94   fun:malloc
95   fun:_PyMem_RawMalloc
96   fun:PyObject_Malloc
97   fun:_PyObject_GC_Alloc
98   fun:_PyObject_GC_Malloc
99   fun:_PyObject_GC_NewVar
100   fun:tuple_alloc
101   fun:PyTuple_New
102   fun:dictiter_iternextitem
103   fun:list_extend
104   fun:_PyList_Extend
105   fun:PySequence_List
106}
107
108{
109   Leak when importing scipy.fft
110   Memcheck:Leak
111   fun:_Znwm
112   fun:PyInit_pypocketfft
113   fun:_PyImport_LoadDynamicModuleWithSpec
114   fun:_imp_create_dynamic_impl*
115   fun:_imp_create_dynamic
116   fun:cfunction_vectorcall_FASTCALL
117   fun:PyVectorcall_Call
118   fun:_PyObject_Call
119   fun:PyObject_Call
120   fun:do_call_core
121   fun:_PyEval_EvalFrameDefault
122   fun:_PyEval_EvalFrame
123   fun:_PyEval_EvalCode
124}
125
126{
127   NumPy leaks when spawning a subprocess
128   Memcheck:Leak
129   fun:malloc
130   ...
131   fun:_buffer_get_info
132   fun:array_getbuffer
133   fun:PyObject_GetBuffer
134   fun:__Pyx__GetBufferAndValidate*
135   fun:__pyx_f_5numpy_6random_13bit_generator_12SeedSequence_mix_entropy
136   fun:__pyx_pw_5numpy_6random_13bit_generator_12SeedSequence_1__init__
137   fun:type_call
138   fun:__Pyx__PyObject_CallOneArg
139   fun:__pyx_pw_5numpy_6random_13bit_generator_12BitGenerator_1__init__
140}
141