On 04/28/2015 07:58 AM, Michal Privoznik wrote:
There's no need to mark a function as inline in the function
declaration. In fact, it causes a compilation error:
CC xmlgen.lo
In file included from acl_parsing.h:29:0,
from xmlgen.h:26,
from capability_parsing.c:37:
list_util.h:67:21: error: inline function ‘list_node_prev_node’ declared but never
defined [-Werror]
inline list_node_t *list_node_prev_node(list_node_t *node);
^
list_util.h:66:14: error: inline function ‘list_node_prev’ declared but never defined
[-Werror]
inline void *list_node_prev(list_node_t *node);
^
list_util.h:64:21: error: inline function ‘list_node_next_node’ declared but never
defined [-Werror]
inline list_node_t *list_node_next_node(list_node_t *node);
^
list_util.h:63:14: error: inline function ‘list_node_next’ declared but never defined
[-Werror]
inline void *list_node_next(list_node_t *node);
^
list_util.h:61:21: error: inline function ‘list_last_node’ declared but never defined
[-Werror]
inline list_node_t *list_last_node(list_t *list);
^
list_util.h:60:14: error: inline function ‘list_last’ declared but never defined
[-Werror]
inline void *list_last(list_t *list);
^
list_util.h:58:21: error: inline function ‘list_first_node’ declared but never defined
[-Werror]
inline list_node_t *list_first_node(list_t *list);
^
list_util.h:57:14: error: inline function ‘list_first’ declared but never defined
[-Werror]
inline void *list_first(list_t *list);
^
list_util.h:55:13: error: inline function ‘list_node_data_set’ declared but never defined
[-Werror]
inline void list_node_data_set(list_node_t *node, void *data);
^
list_util.h:54:14: error: inline function ‘list_node_data_get’ declared but never defined
[-Werror]
inline void *list_node_data_get(list_node_t *node);
^
list_util.h:52:21: error: inline function ‘list_count’ declared but never defined
[-Werror]
inline unsigned int list_count(list_t *list);
^
cc1: all warnings being treated as errors
Makefile:499: recipe for target 'capability_parsing.lo' failed
make[2]: *** [capability_parsing.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
libxkutil/list_util.h | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
The last time I compiled libvirt-cim this wasn't an issue! Additionally
my daily Coverity builds libvirt-cim from upstream from scratch without
issue...
So is this from a 'newer' compiler? I have:
$ gcc --version
gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I'm not disagreeing this is a problem and needs to be fixed...
John
FWIW:
libvirt-cim patches have been sent to the libvirt-cim list
@libvirt-cim(a)redhat.com and not libvir-list...
diff --git a/libxkutil/list_util.h b/libxkutil/list_util.h
index 6510272..6582dfe 100644
--- a/libxkutil/list_util.h
+++ b/libxkutil/list_util.h
@@ -49,22 +49,22 @@ void list_remove_node(list_t *list, list_node_t *node);
bool list_foreach(list_t *list, list_foreach_cb cb, void *user_data);
-inline unsigned int list_count(list_t *list);
+unsigned int list_count(list_t *list);
-inline void *list_node_data_get(list_node_t *node);
-inline void list_node_data_set(list_node_t *node, void *data);
+void *list_node_data_get(list_node_t *node);
+void list_node_data_set(list_node_t *node, void *data);
-inline void *list_first(list_t *list);
-inline list_node_t *list_first_node(list_t *list);
+void *list_first(list_t *list);
+list_node_t *list_first_node(list_t *list);
-inline void *list_last(list_t *list);
-inline list_node_t *list_last_node(list_t *list);
+void *list_last(list_t *list);
+list_node_t *list_last_node(list_t *list);
-inline void *list_node_next(list_node_t *node);
-inline list_node_t *list_node_next_node(list_node_t *node);
+void *list_node_next(list_node_t *node);
+list_node_t *list_node_next_node(list_node_t *node);
-inline void *list_node_prev(list_node_t *node);
-inline list_node_t *list_node_prev_node(list_node_t *node);
+void *list_node_prev(list_node_t *node);
+list_node_t *list_node_prev_node(list_node_t *node);
#ifdef __cplusplus
} /* extern "C" */