diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2023-12-20 10:45:39 +0100 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2023-12-20 17:37:27 +0100 |
commit | 552a0a0e4daaac6896995b1ce63a44df6582ade2 (patch) | |
tree | 97c00c104e98c147ed7cdd8d647de885b8398409 /vcl | |
parent | dee13501d67ac544c090d68c95c9a9df75f8bf27 (diff) |
gtk4 a11y: Silence loplugin:unreffun a different way
Including the `a11y.hxx` header in another source file
would result in an `--enable-werror` gcc 13.2.0-7
build on Debian testing failing like this
(real use case is in a following commit, but this is
also reproducible by including the header in
`vcl/unx/gtk4/gtkaccessibleeventlistener.cxx`):
In file included from .../vcl/unx/gtk4/gtkaccessibleeventlistener.cxx:15:
.../vcl/unx/gtk4/a11y.hxx:19:24: error: ‘void* lo_accessible_get_instance_private(LoAccessible*)’ declared ‘static’ but never defined [-Werror=unused-function]
19 | static inline gpointer lo_accessible_get_instance_private(LoAccessible*);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.../vcl/unx/gtk4/a11y.hxx:21:24: error: ‘void* ooo_fixed_get_instance_private(OOoFixed*)’ declared ‘static’ but never defined [-Werror=unused-function]
21 | static inline gpointer ooo_fixed_get_instance_private(OOoFixed*);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[1]: *** [.../solenv/gbuild/LinkTarget.mk:337: .../workdir/CxxObject/vcl/unx/gtk4/gtkaccessibleeventlistener.o] Error 1
make: *** [Makefile:290: build] Error 2
However, just removing the declarations would make loplugin:unreffun unhappy:
.../vcl/unx/gtk4/a11y.cxx:568:1: error: Unreferenced externally invisible function definition [loplugin:unreffun]
G_DEFINE_TYPE_WITH_CODE(LoAccessible, lo_accessible, G_TYPE_OBJECT,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1842:56: note: expanded from macro 'G_DEFINE_TYPE_WITH_CODE'
#define G_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:2325:3: note: expanded from macro '_G_DEFINE_TYPE_EXTENDED_BEGIN'
_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE(TypeName, type_name, TYPE_PARENT) \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:2280:24: note: expanded from macro '_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE'
static inline gpointer \
~~~~~~~~~~~~~~~~~~~~~~~^
<scratch space>:101:1: note: expanded from here
lo_accessible_get_instance_private
^
.../vcl/unx/gtk4/a11y.cxx:857:1: error: Unreferenced externally invisible function definition [loplugin:unreffun]
G_DEFINE_TYPE_WITH_CODE(OOoFixed, ooo_fixed, GTK_TYPE_FIXED,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1842:56: note: expanded from macro 'G_DEFINE_TYPE_WITH_CODE'
#define G_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:2325:3: note: expanded from macro '_G_DEFINE_TYPE_EXTENDED_BEGIN'
_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE(TypeName, type_name, TYPE_PARENT) \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:2280:24: note: expanded from macro '_G_DEFINE_TYPE_EXTENDED_BEGIN_PRE'
static inline gpointer \
~~~~~~~~~~~~~~~~~~~~~~~^
<scratch space>:131:1: note: expanded from here
ooo_fixed_get_instance_private
^
2 errors generated.
make[1]: *** [.../solenv/gbuild/LinkTarget.mk:337: .../workdir/CxxObject/vcl/unx/gtk4/a11y.o] Error 1
make: *** [Makefile:290: build] Error 2
Silence these 2 loplugin:unreffun errors using a different
approach instead, as suggested by Stephan Bergmann in [1].
[1] https://gerrit.libreoffice.org/c/core/+/161060/comments/3e6ccbd5_87243200
Change-Id: I4c3a1c34bfaa5ac6c306881e3caff2e04d6992dd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161060
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/gtk4/a11y.cxx | 16 | ||||
-rw-r--r-- | vcl/unx/gtk4/a11y.hxx | 2 |
2 files changed, 16 insertions, 2 deletions
diff --git a/vcl/unx/gtk4/a11y.cxx b/vcl/unx/gtk4/a11y.cxx index 2b5e64e03947..4107c7ff0b79 100644 --- a/vcl/unx/gtk4/a11y.cxx +++ b/vcl/unx/gtk4/a11y.cxx @@ -565,8 +565,16 @@ static void lo_accessible_range_init(GtkAccessibleRangeInterface* iface) } #endif +// silence loplugin:unreffun +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-function" +#endif G_DEFINE_TYPE_WITH_CODE(LoAccessible, lo_accessible, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE(GTK_TYPE_ACCESSIBLE, lo_accessible_accessible_init)) +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif static void lo_accessible_class_init(LoAccessibleClass* klass) { @@ -854,8 +862,16 @@ static void ooo_fixed_accessible_init(GtkAccessibleInterface* iface) // iface->get_platform_state = get_platform_state; } +// silence loplugin:unreffun +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-function" +#endif G_DEFINE_TYPE_WITH_CODE(OOoFixed, ooo_fixed, GTK_TYPE_FIXED, G_IMPLEMENT_INTERFACE(GTK_TYPE_ACCESSIBLE, ooo_fixed_accessible_init)) +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif static void ooo_fixed_class_init(OOoFixedClass* /*klass*/) {} diff --git a/vcl/unx/gtk4/a11y.hxx b/vcl/unx/gtk4/a11y.hxx index 90711515bceb..3b2e9ce02714 100644 --- a/vcl/unx/gtk4/a11y.hxx +++ b/vcl/unx/gtk4/a11y.hxx @@ -16,9 +16,7 @@ struct LoAccessible; struct LoAccessibleClass; struct OOoFixed; struct OOoFixedClass; -static inline gpointer lo_accessible_get_instance_private(LoAccessible*); GType lo_accessible_get_type(); -static inline gpointer ooo_fixed_get_instance_private(OOoFixed*); GtkWidget* ooo_fixed_new(); /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |