From 486fb593db164d6de7a0e42c86891fbf4c509f31 Mon Sep 17 00:00:00 2001 From: Benjamin Nauck Date: Thu, 6 Mar 2025 20:37:57 +0100 Subject: [PATCH] Tools: Suppress erroneous warnings for GCC --- .../bindings/templates/templateClassPyExport.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Tools/bindings/templates/templateClassPyExport.py b/src/Tools/bindings/templates/templateClassPyExport.py index 1fa3ab128b..7220558e83 100644 --- a/src/Tools/bindings/templates/templateClassPyExport.py +++ b/src/Tools/bindings/templates/templateClassPyExport.py @@ -366,6 +366,15 @@ public: using Base::streq; using namespace @self.export.Namespace@; +#if defined(__GNUC__) +#pragma GCC diagnostic push +// Ignore -Wmissing-field-initializers (GCC only): +// - C++20 guarantees omitted fields are zero-initialized. +// - Python C API changes fields across versions. +// - Clang does not warn; GCC does unnecessarily. +// See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96868 +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif // __GNUC__ /// Type structure of @self.export.Name@ PyTypeObject @self.export.Name@::Type = { .ob_base = PyVarObject_HEAD_INIT(&PyType_Type,0) @@ -406,6 +415,9 @@ PyTypeObject @self.export.Name@::Type = { .tp_init = __PyInit, .tp_new = @self.export.Namespace@::@self.export.Name@::PyMake }; +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif // __GNUC__ /// Methods structure of @self.export.Name@ PyMethodDef @self.export.Name@::Methods[] = {