summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/_decimal/_decimal.c8
-rw-r--r--Tools/c-analyzer/cpython/ignored.tsv3
2 files changed, 10 insertions, 1 deletions
diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c
index b49ea3c..99ff9aa 100644
--- a/Modules/_decimal/_decimal.c
+++ b/Modules/_decimal/_decimal.c
@@ -5877,6 +5877,7 @@ error:
return NULL;
}
+static int minalloc_is_set = 0;
static int
_decimal_exec(PyObject *m)
@@ -5899,7 +5900,12 @@ _decimal_exec(PyObject *m)
mpd_reallocfunc = PyMem_Realloc;
mpd_callocfunc = mpd_callocfunc_em;
mpd_free = PyMem_Free;
- mpd_setminalloc(_Py_DEC_MINALLOC);
+
+ /* Suppress the warning caused by multi-phase initialization */
+ if (!minalloc_is_set) {
+ mpd_setminalloc(_Py_DEC_MINALLOC);
+ minalloc_is_set = 1;
+ }
decimal_state *state = get_module_state(m);
diff --git a/Tools/c-analyzer/cpython/ignored.tsv b/Tools/c-analyzer/cpython/ignored.tsv
index f991164..ca656f0 100644
--- a/Tools/c-analyzer/cpython/ignored.tsv
+++ b/Tools/c-analyzer/cpython/ignored.tsv
@@ -166,6 +166,9 @@ Python/pylifecycle.c fatal_error reentrant -
# explicitly protected, internal-only
Modules/_xxinterpchannelsmodule.c - _globals -
+# set once during module init
+Modules/_decimal/_decimal.c - minalloc_is_set -
+
##################################
## not significant