From: Simon Marchi Date: Mon, 28 Oct 2019 01:34:26 +0000 (-0400) Subject: Fix -Wshadow warnings X-Git-Tag: v2.0.0-rc2~31 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=4ec8d4cd2650ba5e2865998cfbb221800c5727a1 Fix -Wshadow warnings Fix warnings of this type: CC event.lo /home/simark/src/babeltrace/src/ctf-writer/event.c: In function ‘bt_ctf_event_common_create_fields’: /home/simark/src/babeltrace/src/ctf-writer/event.c:135:21: error: declaration of ‘create_field_func’ shadows a global declaration [-Werror=shadow] 135 | create_field_func create_field_func, | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ In file included from /home/simark/src/babeltrace/src/ctf-writer/event.c:45: /home/simark/src/babeltrace/src/ctf-writer/event.h:89:17: note: shadowed declaration is here 89 | typedef void *(*create_field_func)(void *); | ^~~~~~~~~~~~~~~~~ Simply rename the types so they don't have the same name as the parameters, suffix the types with `_type`. I have added -Wno-shadow when building native_bt.c (in the Python bindings), see the comment in Makefile.am for more details. Change-Id: I5335d54f9a005d0cd4790f603ed3b1cda9645a93 Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/2271 Reviewed-by: Francis Deslauriers --- diff --git a/configure.ac b/configure.ac index 28d247ae..120fb28c 100644 --- a/configure.ac +++ b/configure.ac @@ -676,7 +676,6 @@ AX_COMPILER_FLAGS( -Wno-missing-declarations dnl -Wno-redundant-decls dnl -Wno-logical-op dnl - -Wno-shadow dnl -Wno-double-promotion dnl -Wno-cast-align dnl ]) diff --git a/src/bindings/python/bt2/Makefile.am b/src/bindings/python/bt2/Makefile.am index fe401978..cc0ded09 100644 --- a/src/bindings/python/bt2/Makefile.am +++ b/src/bindings/python/bt2/Makefile.am @@ -101,8 +101,15 @@ GENERATED_BINDINGS_DEPS = \ bt2/version.py \ setup.py +# Some versions of SWIG (like 3.0.12) generate code where a parameter called +# `swig_this` shadows a global of the same name. Later versions (like 4.0.1) +# have renamed this global to `Swig_This_global`. +# +# Disable -Wshadow for that file. +WARN_CFLAGS = -Wno-shadow + BUILD_FLAGS=CC="$(CC)" \ - CFLAGS="$(GLIB_CFLAGS) $(AM_CFLAGS) $(CFLAGS)" \ + CFLAGS="$(GLIB_CFLAGS) $(AM_CFLAGS) $(CFLAGS) $(WARN_CFLAGS)" \ CPPFLAGS="$(AM_CPPFLAGS) $(CPPFLAGS) -I$(srcdir)/bt2" \ LDFLAGS="$(AM_LDFLAGS) $(LDFLAGS) $(GLIB_LIBS) $(LIBS)" diff --git a/src/ctf-writer/event.c b/src/ctf-writer/event.c index ea29dcf1..5c483ed4 100644 --- a/src/ctf-writer/event.c +++ b/src/ctf-writer/event.c @@ -132,10 +132,10 @@ static int bt_ctf_event_common_create_fields( struct bt_ctf_stream_class_common *stream_class, struct bt_ctf_validation_output *validation_output, - create_field_func create_field_func, - release_field_func release_field_func, - create_header_field_func create_header_field_func, - release_header_field_func release_header_field_func, + create_field_func_type create_field_func, + release_field_func_type release_field_func, + create_header_field_func_type create_header_field_func, + release_header_field_func_type release_header_field_func, struct bt_ctf_field_wrapper **header_field, struct bt_ctf_field_common **stream_event_context_field, struct bt_ctf_field_common **context_field, @@ -319,10 +319,10 @@ int bt_ctf_event_common_initialize(struct bt_ctf_event_common *event, int (*map_clock_classes_func)(struct bt_ctf_stream_class_common *stream_class, struct bt_ctf_field_type_common *packet_context_field_type, struct bt_ctf_field_type_common *event_header_field_type), - create_field_func create_field_func, - release_field_func release_field_func, - create_header_field_func create_header_field_func, - release_header_field_func release_header_field_func) + create_field_func_type create_field_func, + release_field_func_type release_field_func, + create_header_field_func_type create_header_field_func, + release_header_field_func_type release_header_field_func) { int ret; struct bt_ctf_trace_common *trace = NULL; @@ -621,10 +621,10 @@ struct bt_ctf_event *bt_ctf_event_create(struct bt_ctf_event_class *event_class) (bt_ctf_validation_flag_copy_field_type_func) bt_ctf_field_type_copy, false, map_clock_classes_func, - (create_field_func) bt_ctf_field_create, - (release_field_func) bt_ctf_object_put_ref, - (create_header_field_func) create_event_header_field, - (release_header_field_func) destroy_event_header_field); + (create_field_func_type) bt_ctf_field_create, + (release_field_func_type) bt_ctf_object_put_ref, + (create_header_field_func_type) create_event_header_field, + (release_header_field_func_type) destroy_event_header_field); if (ret) { /* bt_ctf_event_common_initialize() logs errors */ goto error; diff --git a/src/ctf-writer/event.h b/src/ctf-writer/event.h index ae6692d1..a51b9011 100644 --- a/src/ctf-writer/event.h +++ b/src/ctf-writer/event.h @@ -86,10 +86,10 @@ struct bt_ctf_event_class_common *bt_ctf_event_common_borrow_class( return event->class; } -typedef void *(*create_field_func)(void *); -typedef void (*release_field_func)(void *); -typedef void *(*create_header_field_func)(void *, void *); -typedef void (*release_header_field_func)(void *, void *); +typedef void *(*create_field_func_type)(void *); +typedef void (*release_field_func_type)(void *); +typedef void *(*create_header_field_func_type)(void *, void *); +typedef void (*release_header_field_func_type)(void *, void *); BT_HIDDEN int bt_ctf_event_common_initialize(struct bt_ctf_event_common *event, @@ -101,10 +101,10 @@ int bt_ctf_event_common_initialize(struct bt_ctf_event_common *event, int (*map_clock_classes_func)(struct bt_ctf_stream_class_common *stream_class, struct bt_ctf_field_type_common *packet_context_field_type, struct bt_ctf_field_type_common *event_header_field_type), - create_field_func create_field_func, - release_field_func release_field_func, - create_header_field_func create_header_field_func, - release_header_field_func release_header_field_func); + create_field_func_type create_field_func, + release_field_func_type release_field_func, + create_header_field_func_type create_header_field_func, + release_header_field_func_type release_header_field_func); static inline struct bt_ctf_field_common *bt_ctf_event_common_borrow_payload(