mirror of
https://github.com/netdata/netdata.git
synced 2025-04-13 01:08:11 +00:00
Make use of GCC's __attribute__((unused)) (#6392)
* configure.ac: Add support for GCC's __attribute__((unused)) When compiling under GCC with -Wextra (along with -Wall) there are a lot of compiler warnings such as collectors/cgroups.plugin/cgroup-network.c:89:45: warning: unused parameter ‘scope’ [-Wunused-parameter] 89 | struct iface *read_proc_net_dev(const char *scope, const char *prefix) { | ~~~~~~~~~~~~^~~~~ Some arguments may be able to be got rid off, others won't. GCC (and at least clang[0]) provide an __attribute__((unused)) annotation that can be used on function parameters (also on variables, functions, labels, enums, structs etc) to inform the compiler of such and will squash warnings of the above nature. A check is added to configure.ac for the use of GCC (I believe $GCC will be set to 'yes' for clang also) and if found it creates __always_unused & __maybe_unused #define's set to __attribute__((unused)) otherwise it just sets them empty. If other compilers have a similar feature this check can be adjusted to accommodate them. The reason for the two defines is that some variables may always be unused in a function, others may or may not depending on #ifdef's for example. So we are able to document both cases. Subsequent commits will start making use of these to squash such compiler warnings. [0]: https://clang.llvm.org/docs/AttributeReference.html#maybe-unused-unused Signed-off-by: Andrew Clayton <andrew@zeta.digital-domain.net> * collectors/statsd.plugin: Mark a function argument as __maybe_unused In collectors/statsd.plugin/statsd.c the app function argument to STATSD_APP_CHART_DIM() might be unused if NETDATA_INTERNAL_CHECKS is not defined, then the debug() macro that it's used in from libnetdata/log/log.h will be defined to a dummy function where none of the arguments are used. This fixes a compiler warning [-Wunused-parameter] when compiling with -Wextra *and* -Wall. Signed-off-by: Andrew Clayton <andrew@zeta.digital-domain.net> * collectors/apps.plugin: Mark a function argument as __maybe_unused In collectors/apps.plugin/apps_plugin.c the function debug_print_process_tree() takes an argument 'msg' that might be unused if NETDATA_INTERNAL_CHECKS is not defined, then debug_log() will be set to a dummy function that takes no arguments. This fixes a compiler warning [-Wunused-parameter] when compiling with -Wextra *and* -Wall. Signed-off-by: Andrew Clayton <andrew@zeta.digital-domain.net> * libnetdata/locks/locks: Mark function arguments as __maybe_unused In libnetdata/locks/locks.c there a number of functions that take arguments 'file', 'function' & 'line' that might be unused if NETDATA_INTERNAL_CHECKS is not defined, then the debug() macro that it's used in from libnetdata/log/log.h will be defined to a dummy function where none of the arguments are used. This fixes compiler warnings [-Wunused-parameter] when compiling with -Wextra *and* -Wall. Signed-off-by: Andrew Clayton <andrew@zeta.digital-domain.net> * libnetdata/socket/security: Mark a function argument as __maybe_unused In libnetdata/socket/security.c the function security_info_callback() takes an argument 'ret' that might be unused if NETDATA_INTERNAL_CHECKS is not defined, then the debug() macro that it's used in from libnetdata/log/log.h will be defined to a dummy function where none of the arguments are used. This fixes a compiler warning [-Wunused-parameter] when compiling with -Wextra *and* -Wall. Signed-off-by: Andrew Clayton <andrew@zeta.digital-domain.net> * collectors/cgroups.plugin: Mark a function argument as __maybe_unused In collectors/cgroups.plugin/cgroup-network.c the function read_proc_net_dev() takes an argument 'scope' that might be unused if the NETDATA_INTERNAL_CHECKS is not defined. This fixes a compiler warning [-Wunused-parameter] when compiling with -Wextra *and* -Wall". Signed-off-by: Andrew Clayton <andrew@zeta.digital-domain.net> * database/rrddim: Mark function arguments as __maybe_unused In database/rrddim.c there a couple of functions that take a 'st' argument that might be unused if NETDATA_INTERNAL_CHECKS is not defined, then the debug() macro that it's used in from libnetdata/log/log.h will be defined to a dummy function where none of the arguments are used. This fixes compiler warnings [-Wunused-parameter] when compiling with -Wextra *and* -Wall. Signed-off-by: Andrew Clayton <andrew@zeta.digital-domain.net> * database/rrdvar: Mark a function argument as __maybe_unused In database/rrdvar.c the function rrdvar_create_and_index() take an argument 'scope' that might be unused if NETDATA_INTERNAL_CHECKS is not defined, then the debug() macro that it's used in from libnetdata/log/log.h will be defined to a dummy function where none of the arguments are used. This fixes a compiler warning [-Wunused-parameter] when compiling with -Wextra *and* -Wall. Signed-off-by: Andrew Clayton <andrew@zeta.digital-domain.net>
This commit is contained in:
parent
ea3d2ada6a
commit
adb7026b14
8 changed files with 38 additions and 18 deletions
|
@ -2227,7 +2227,7 @@ static inline int debug_print_process_and_parents(struct pid_stat *p, usec_t tim
|
|||
return indent + 1;
|
||||
}
|
||||
|
||||
static inline void debug_print_process_tree(struct pid_stat *p, char *msg) {
|
||||
static inline void debug_print_process_tree(struct pid_stat *p, char *msg __maybe_unused) {
|
||||
debug_log("%s: process %s (%d, %s) with parents:", msg, p->comm, p->pid, p->updated?"running":"exited");
|
||||
debug_print_process_and_parents(p, p->stat_collected_usec);
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ unsigned int read_iface_ifindex(const char *prefix, const char *iface) {
|
|||
return (unsigned int)ifindex;
|
||||
}
|
||||
|
||||
struct iface *read_proc_net_dev(const char *scope, const char *prefix) {
|
||||
struct iface *read_proc_net_dev(const char *scope __maybe_unused, const char *prefix) {
|
||||
if(!prefix) prefix = "";
|
||||
|
||||
procfile *ff = NULL;
|
||||
|
|
|
@ -1067,7 +1067,7 @@ static const char *valuetype2string(STATSD_APP_CHART_DIM_VALUE_TYPE type) {
|
|||
}
|
||||
|
||||
static STATSD_APP_CHART_DIM *add_dimension_to_app_chart(
|
||||
STATSD_APP *app
|
||||
STATSD_APP *app __maybe_unused
|
||||
, STATSD_APP_CHART *chart
|
||||
, const char *metric_name
|
||||
, const char *dim_name
|
||||
|
|
|
@ -437,6 +437,14 @@ else
|
|||
AC_DEFINE_UNQUOTED([unlikely(x)], [(x)], [gcc branch optimization])
|
||||
fi
|
||||
|
||||
if test "${GCC}" = "yes"; then
|
||||
AC_DEFINE([__always_unused], [__attribute__((unused))], [gcc unused attribute])
|
||||
AC_DEFINE([__maybe_unused], [__attribute__((unused))], [gcc unused attribute])
|
||||
else
|
||||
AC_DEFINE([__always_unused], [], [dummy unused attribute])
|
||||
AC_DEFINE([__maybe_unused], [], [dummy unused attribute])
|
||||
fi
|
||||
|
||||
if test "${enable_pedantic}" = "yes"; then
|
||||
enable_strict="yes"
|
||||
CFLAGS="${CFLAGS} -pedantic -Wall -Wextra -Wno-long-long"
|
||||
|
|
|
@ -466,7 +466,7 @@ inline void rrddim_is_obsolete(RRDSET *st, RRDDIM *rd) {
|
|||
rrdset_flag_set(st, RRDSET_FLAG_OBSOLETE_DIMENSIONS);
|
||||
}
|
||||
|
||||
inline void rrddim_isnot_obsolete(RRDSET *st, RRDDIM *rd) {
|
||||
inline void rrddim_isnot_obsolete(RRDSET *st __maybe_unused, RRDDIM *rd) {
|
||||
debug(D_RRD_CALLS, "rrddim_isnot_obsolete() for chart %s, dimension %s", st->name, rd->name);
|
||||
|
||||
rrddim_flag_clear(rd, RRDDIM_FLAG_OBSOLETE);
|
||||
|
@ -475,7 +475,7 @@ inline void rrddim_isnot_obsolete(RRDSET *st, RRDDIM *rd) {
|
|||
// ----------------------------------------------------------------------------
|
||||
// RRDDIM - collect values for a dimension
|
||||
|
||||
inline collected_number rrddim_set_by_pointer(RRDSET *st, RRDDIM *rd, collected_number value) {
|
||||
inline collected_number rrddim_set_by_pointer(RRDSET *st __maybe_unused, RRDDIM *rd, collected_number value) {
|
||||
debug(D_RRD_CALLS, "rrddim_set_by_pointer() for chart %s, dimension %s, value " COLLECTED_NUMBER_FORMAT, st->name, rd->name, value);
|
||||
|
||||
now_realtime_timeval(&rd->last_collected_time);
|
||||
|
|
|
@ -68,7 +68,8 @@ inline void rrdvar_free(RRDHOST *host, avl_tree_lock *tree, RRDVAR *rv) {
|
|||
freez(rv);
|
||||
}
|
||||
|
||||
inline RRDVAR *rrdvar_create_and_index(const char *scope, avl_tree_lock *tree, const char *name, RRDVAR_TYPE type, RRDVAR_OPTIONS options, void *value) {
|
||||
inline RRDVAR *rrdvar_create_and_index(const char *scope __maybe_unused, avl_tree_lock *tree, const char *name,
|
||||
RRDVAR_TYPE type, RRDVAR_OPTIONS options, void *value) {
|
||||
char *variable = strdupz(name);
|
||||
rrdvar_fix_name(variable);
|
||||
uint32_t hash = simple_hash(variable);
|
||||
|
|
|
@ -82,7 +82,8 @@ int __netdata_mutex_unlock(netdata_mutex_t *mutex) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_mutex_init_debug( const char *file, const char *function, const unsigned long line, netdata_mutex_t *mutex) {
|
||||
int netdata_mutex_init_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_mutex_t *mutex) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -98,7 +99,8 @@ int netdata_mutex_init_debug( const char *file, const char *function, const unsi
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_mutex_lock_debug( const char *file, const char *function, const unsigned long line, netdata_mutex_t *mutex) {
|
||||
int netdata_mutex_lock_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_mutex_t *mutex) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -114,7 +116,8 @@ int netdata_mutex_lock_debug( const char *file, const char *function, const unsi
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_mutex_trylock_debug( const char *file, const char *function, const unsigned long line, netdata_mutex_t *mutex) {
|
||||
int netdata_mutex_trylock_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_mutex_t *mutex) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -130,7 +133,8 @@ int netdata_mutex_trylock_debug( const char *file, const char *function, const u
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_mutex_unlock_debug( const char *file, const char *function, const unsigned long line, netdata_mutex_t *mutex) {
|
||||
int netdata_mutex_unlock_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_mutex_t *mutex) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -219,7 +223,8 @@ int __netdata_rwlock_trywrlock(netdata_rwlock_t *rwlock) {
|
|||
}
|
||||
|
||||
|
||||
int netdata_rwlock_destroy_debug( const char *file, const char *function, const unsigned long line, netdata_rwlock_t *rwlock) {
|
||||
int netdata_rwlock_destroy_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_rwlock_t *rwlock) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -235,7 +240,8 @@ int netdata_rwlock_destroy_debug( const char *file, const char *function, const
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_rwlock_init_debug( const char *file, const char *function, const unsigned long line, netdata_rwlock_t *rwlock) {
|
||||
int netdata_rwlock_init_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_rwlock_t *rwlock) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -251,7 +257,8 @@ int netdata_rwlock_init_debug( const char *file, const char *function, const uns
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_rwlock_rdlock_debug( const char *file, const char *function, const unsigned long line, netdata_rwlock_t *rwlock) {
|
||||
int netdata_rwlock_rdlock_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_rwlock_t *rwlock) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -267,7 +274,8 @@ int netdata_rwlock_rdlock_debug( const char *file, const char *function, const u
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_rwlock_wrlock_debug( const char *file, const char *function, const unsigned long line, netdata_rwlock_t *rwlock) {
|
||||
int netdata_rwlock_wrlock_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_rwlock_t *rwlock) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -283,7 +291,8 @@ int netdata_rwlock_wrlock_debug( const char *file, const char *function, const u
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_rwlock_unlock_debug( const char *file, const char *function, const unsigned long line, netdata_rwlock_t *rwlock) {
|
||||
int netdata_rwlock_unlock_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_rwlock_t *rwlock) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -299,7 +308,8 @@ int netdata_rwlock_unlock_debug( const char *file, const char *function, const u
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_rwlock_tryrdlock_debug( const char *file, const char *function, const unsigned long line, netdata_rwlock_t *rwlock) {
|
||||
int netdata_rwlock_tryrdlock_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_rwlock_t *rwlock) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
@ -315,7 +325,8 @@ int netdata_rwlock_tryrdlock_debug( const char *file, const char *function, cons
|
|||
return ret;
|
||||
}
|
||||
|
||||
int netdata_rwlock_trywrlock_debug( const char *file, const char *function, const unsigned long line, netdata_rwlock_t *rwlock) {
|
||||
int netdata_rwlock_trywrlock_debug(const char *file __maybe_unused, const char *function __maybe_unused,
|
||||
const unsigned long line __maybe_unused, netdata_rwlock_t *rwlock) {
|
||||
usec_t start = 0;
|
||||
(void)start;
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ int netdata_validate_server = NETDATA_SSL_VALID_CERTIFICATE;
|
|||
* @param where the variable with the flags set.
|
||||
* @param ret the return of the caller
|
||||
*/
|
||||
static void security_info_callback(const SSL *ssl, int where, int ret) {
|
||||
static void security_info_callback(const SSL *ssl, int where, int ret __maybe_unused) {
|
||||
(void)ssl;
|
||||
if (where & SSL_CB_ALERT) {
|
||||
debug(D_WEB_CLIENT,"SSL INFO CALLBACK %s %s", SSL_alert_type_string(ret), SSL_alert_desc_string_long(ret));
|
||||
|
|
Loading…
Add table
Reference in a new issue