libdnet
libdnet copied to clipboard
1.14: libdnet is not LTO ready
Summary stats about compile/link time warnings:
[tkloczko@barrel SPECS]$ rpmbuild -ba --with check libdnet.spec --quiet 2>&1 | grep -- -W | sed 's/.*\[//; s/\]//' | sort | uniq -c | sort -nr
55 -Wunused-variable
25 -Wparentheses
22 -Wunused-label
14 -Wpointer-sign
13 -Wunused-function
10 -Wincompatible-pointer-types
3 -Wlto-type-mismatch
2 -Wdeprecated-declarations
1 -Wunused-result
1 -Wimplicit-function-declaration
Mosts importand are those -Wlto-type-mismatch
warnings because they are trashing LTO.
Here is the full warnings log:
rand.c: In function 'rand_open':
rand.c:84:17: warning: ignoring return value of 'read' declared with attribute 'warn_unused_result' [-Wunused-result]
84 | read(fd, seed + sizeof(*tv), sizeof(seed) - sizeof(*tv));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/config.h:298:5: warning: type of 'strlcpy' does not match original declaration [-Wlto-type-mismatch]
298 | int strlcpy(char *, const char *, int);
| ^
strlcpy.c:43:1: note: return value type mismatch
43 | strlcpy(dst, src, siz)
| ^
strlcpy.c:43:1: note: type 'size_t' should match type 'int'
strlcpy.c:43:1: note: 'strlcpy' was previously declared here
strlcpy.c:43:1: note: code may be misoptimized unless '-fno-strict-aliasing' is used
./dnet.c: In function ‘__pyx_f_4dnet_3eth_get’:
./dnet.c:583:49: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
583 | __pyx_2 = PyBytes_FromStringAndSize(__pyx_v_ea.data,6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
In file included from /usr/include/python3.8/Python.h:96,
from ./dnet.c:5:
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3eth_set’:
./dnet.c:615:46: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
615 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_ea.data,__pyx_v_value,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:400:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
400 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3eth___dealloc__’:
./dnet.c:693:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
693 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_eth_ntoa’:
./dnet.c:711:46: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
711 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_ea.data,__pyx_v_buf,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:400:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
400 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_eth_aton’:
./dnet.c:763:49: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
763 | __pyx_3 = PyBytes_FromStringAndSize(__pyx_v_ea.data,6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
In file included from /usr/include/python3.8/Python.h:96,
from ./dnet.c:5:
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_eth_pack_hdr’:
./dnet.c:801:45: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
801 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_s.data,__pyx_v_src,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;}
| ~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:400:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
400 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c:805:45: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
805 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_d.data,__pyx_v_dst,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; goto __pyx_L1;}
| ~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:400:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
400 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_2ip___dealloc__’:
./dnet.c:918:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
918 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_ip_checksum’:
./dnet.c:1046:3: warning: ‘PyObject_AsReadBuffer’ is deprecated [-Wdeprecated-declarations]
1046 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_pkt,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ^~~~~~~
In file included from /usr/include/python3.8/Python.h:147,
from ./dnet.c:5:
/usr/include/python3.8/abstract.h:337:17: note: declared here
337 | PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
| ^~~~~~~~~~~~~~~~~~~~~
./dnet.c:1046:49: warning: passing argument 2 of ‘PyObject_AsReadBuffer’ from incompatible pointer type [-Wincompatible-pointer-types]
1046 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_pkt,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ~^~~~~~~~~~~
| |
| char **
In file included from /usr/include/python3.8/Python.h:147,
from ./dnet.c:5:
/usr/include/python3.8/abstract.h:338:52: note: expected ‘const void **’ but argument is of type ‘char **’
338 | const void **buffer,
| ~~~~~~~~~~~~~^~~~~~
./dnet.c:1046:62: warning: passing argument 3 of ‘PyObject_AsReadBuffer’ from incompatible pointer type [-Wincompatible-pointer-types]
1046 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_pkt,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ~^~~~~~~~~~~
| |
| int *
In file included from /usr/include/python3.8/Python.h:147,
from ./dnet.c:5:
/usr/include/python3.8/abstract.h:339:51: note: expected ‘Py_ssize_t *’ {aka ‘long int *’} but argument is of type ‘int *’
339 | Py_ssize_t *buffer_len);
| ~~~~~~~~~~~~^~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_ip_cksum_add’:
./dnet.c:1127:3: warning: ‘PyObject_AsReadBuffer’ is deprecated [-Wdeprecated-declarations]
1127 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_buf,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ^~~~~~~
In file included from /usr/include/python3.8/Python.h:147,
from ./dnet.c:5:
/usr/include/python3.8/abstract.h:337:17: note: declared here
337 | PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
| ^~~~~~~~~~~~~~~~~~~~~
./dnet.c:1127:49: warning: passing argument 2 of ‘PyObject_AsReadBuffer’ from incompatible pointer type [-Wincompatible-pointer-types]
1127 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_buf,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ~^~~~~~~~~~~
| |
| char **
In file included from /usr/include/python3.8/Python.h:147,
from ./dnet.c:5:
/usr/include/python3.8/abstract.h:338:52: note: expected ‘const void **’ but argument is of type ‘char **’
338 | const void **buffer,
| ~~~~~~~~~~~~~^~~~~~
./dnet.c:1127:62: warning: passing argument 3 of ‘PyObject_AsReadBuffer’ from incompatible pointer type [-Wincompatible-pointer-types]
1127 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_buf,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ~^~~~~~~~~~~
| |
| int *
In file included from /usr/include/python3.8/Python.h:147,
from ./dnet.c:5:
/usr/include/python3.8/abstract.h:339:51: note: expected ‘Py_ssize_t *’ {aka ‘long int *’} but argument is of type ‘int *’
339 | Py_ssize_t *buffer_len);
| ~~~~~~~~~~~~^~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr___init__’:
./dnet.c:1473:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1473 | if (__pyx_1=PyObject_RichCompareBool(__pyx_v_addrtxt, Py_None, Py_EQ) == 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 445; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_4data___get__’:
./dnet.c:1661:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1661 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:1676:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1676 | if (__pyx_3=PyObject_RichCompareBool(__pyx_2, __pyx_1, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:1691:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1691 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_3eth___get__’:
./dnet.c:1741:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1741 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2,Py_EQ ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; goto __pyx_L1;}
| ^~~~~~~
In file included from ../include/dnet.h:17,
from ./dnet.c:24:
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1757:92: note: in expansion of macro ‘addr_data8’
1757 | __pyx_2 = PyBytes_FromStringAndSize(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; goto __pyx_L1;}
| ^~~~~~~~~~
In file included from /usr/include/python3.8/Python.h:96,
from ./dnet.c:5:
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_3eth___set__’:
./dnet.c:1791:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1791 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2,Py_EQ ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; goto __pyx_L1;}
| ^~~~~~~
In file included from ../include/dnet.h:17,
from ./dnet.c:24:
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1807:89: note: in expansion of macro ‘addr_data8’
1807 | __pyx_2 = __pyx_f_4dnet___memcpy(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,__pyx_v_value,6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; goto __pyx_L1;}
| ^~~~~~~~~~
./dnet.c:400:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
400 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_2ip___get__’:
./dnet.c:1850:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1850 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; goto __pyx_L1;}
| ^~~~~~~
In file included from ../include/dnet.h:17,
from ./dnet.c:24:
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1866:92: note: in expansion of macro ‘addr_data8’
1866 | __pyx_2 = PyBytes_FromStringAndSize(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
| ^~~~~~~~~~
In file included from /usr/include/python3.8/Python.h:96,
from ./dnet.c:5:
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_2ip___set__’:
./dnet.c:1914:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1914 | if (__pyx_1 = PyObject_RichCompareBool(__pyx_2, __pyx_3, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
| ^~~~~~~
In file included from ../include/dnet.h:17,
from ./dnet.c:24:
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1930:91: note: in expansion of macro ‘addr_data8’
1930 | __pyx_3 = __pyx_f_4dnet___memcpy(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,__pyx_v_value,4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;}
| ^~~~~~~~~~
./dnet.c:400:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
400 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_3ip6___get__’:
./dnet.c:1975:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1975 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; goto __pyx_L1;}
| ^~~~~~~
In file included from ../include/dnet.h:17,
from ./dnet.c:24:
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1991:92: note: in expansion of macro ‘addr_data8’
1991 | __pyx_2 = PyBytes_FromStringAndSize(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,16); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; goto __pyx_L1;}
| ^~~~~~~~~~
In file included from /usr/include/python3.8/Python.h:96,
from ./dnet.c:5:
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_3ip6___set__’:
./dnet.c:2025:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2025 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; goto __pyx_L1;}
| ^~~~~~~
In file included from ../include/dnet.h:17,
from ./dnet.c:24:
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:2041:89: note: in expansion of macro ‘addr_data8’
2041 | __pyx_2 = __pyx_f_4dnet___memcpy(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,__pyx_v_value,16); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; goto __pyx_L1;}
| ^~~~~~~~~~
./dnet.c:400:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
400 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr___hash__’:
./dnet.c:2412:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2412 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:2422:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2422 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 579; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:2432:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2432 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:2466:3: warning: label ‘__pyx_L4’ defined but not used [-Wunused-label]
2466 | __pyx_L4:;
| ^~~~~~~~
./dnet.c:2464:5: warning: label ‘__pyx_L3’ defined but not used [-Wunused-label]
2464 | __pyx_L3:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr___int__’:
./dnet.c:2518:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2518 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr___iter__’:
./dnet.c:2598:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2598 | if (__pyx_1 = PyObject_RichCompareBool(__pyx_2, __pyx_3,Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3arp_loop’:
./dnet.c:3120:88: warning: passing argument 2 of ‘arp_loop’ from incompatible pointer type [-Wincompatible-pointer-types]
3120 | __pyx_1 = PyLong_FromLong(arp_loop(((struct __pyx_obj_4dnet_arp *)__pyx_v_self)->arp,__pyx_f_4dnet___arp_callback,((void (*))__pyx_v__arg))); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; goto __pyx_L1;}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct arp_entry *, void *)
In file included from ../include/dnet.h:18,
from ./dnet.c:24:
../include/dnet/arp.h:101:43: note: expected ‘arp_handler’ {aka ‘int (*)(const struct arp_entry *, void *)’} but argument is of type ‘int (*)(struct arp_entry *, void *)’
101 | int arp_loop(arp_t *arp, arp_handler callback, void *arg);
| ~~~~~~~~~~~~^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3arp___dealloc__’:
./dnet.c:3213:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
3213 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_arp_pack_hdr_ethip’:
./dnet.c:3249:46: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
3249 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_sh.data,__pyx_v_sha,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:400:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
400 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c:3253:46: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
3253 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_dh.data,__pyx_v_dha,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:400:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
400 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_ifent_to_dict’:
./dnet.c:3494:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
3494 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 931; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:3516:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
3516 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_2, __pyx_1, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:3538:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
3538 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:3593:5: warning: label ‘__pyx_L7’ defined but not used [-Wunused-label]
3593 | __pyx_L7:;
| ^~~~~~~~
./dnet.c:3591:7: warning: label ‘__pyx_L6’ defined but not used [-Wunused-label]
3591 | __pyx_L6:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_dict_to_ifent’:
./dnet.c:3649:3: warning: implicit declaration of function ‘strlcpy’; did you mean ‘strncpy’? [-Wimplicit-function-declaration]
3649 | strlcpy(__pyx_v_entry->intf_name,__pyx_2,16);
| ^~~~~~~
| strncpy
./dnet.c:3747:5: warning: label ‘__pyx_L9’ defined but not used [-Wunused-label]
3747 | __pyx_L9:;
| ^~~~~~~~
./dnet.c:3745:7: warning: label ‘__pyx_L8’ defined but not used [-Wunused-label]
3745 | __pyx_L8:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4intf_loop’:
./dnet.c:4137:91: warning: passing argument 2 of ‘intf_loop’ from incompatible pointer type [-Wincompatible-pointer-types]
4137 | __pyx_1 = PyLong_FromLong(intf_loop(((struct __pyx_obj_4dnet_intf *)__pyx_v_self)->intf,__pyx_f_4dnet___intf_callback,((void (*))__pyx_v__arg))); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; goto __pyx_L1;}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct intf_entry *, void *)
In file included from ../include/dnet.h:24,
from ./dnet.c:24:
../include/dnet/intf.h:64:44: note: expected ‘intf_handler’ {aka ‘int (*)(const struct intf_entry *, void *)’} but argument is of type ‘int (*)(struct intf_entry *, void *)’
64 | int intf_loop(intf_t *i, intf_handler callback, void *arg);
| ~~~~~~~~~~~~~^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4intf___dealloc__’:
./dnet.c:4227:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
4227 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_5route_loop’:
./dnet.c:4558:94: warning: passing argument 2 of ‘route_loop’ from incompatible pointer type [-Wincompatible-pointer-types]
4558 | __pyx_1 = PyLong_FromLong(route_loop(((struct __pyx_obj_4dnet_route *)__pyx_v_self)->route,__pyx_f_4dnet___route_callback,((void (*))__pyx_v__arg))); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; goto __pyx_L1;}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct route_entry *, void *)
In file included from ../include/dnet.h:25,
from ./dnet.c:24:
../include/dnet/route.h:31:47: note: expected ‘route_handler’ {aka ‘int (*)(const struct route_entry *, void *)’} but argument is of type ‘int (*)(struct route_entry *, void *)’
31 | int route_loop(route_t *r, route_handler callback, void *arg);
| ~~~~~~~~~~~~~~^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_5route___dealloc__’:
./dnet.c:4648:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
4648 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_rule_to_dict’:
./dnet.c:4710:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
4710 | if (__pyx_2 = PyObject_RichCompareBool(__pyx_1, __pyx_3, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:4732:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
4732 | if (__pyx_2 = PyObject_RichCompareBool(__pyx_3, __pyx_1, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_dict_to_rule’:
./dnet.c:4860:9: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
4860 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_4, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1213; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:4867:11: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
4867 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_4, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1213; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_2fw_loop’:
./dnet.c:5218:85: warning: passing argument 2 of ‘fw_loop’ from incompatible pointer type [-Wincompatible-pointer-types]
5218 | __pyx_1 = PyLong_FromLong(fw_loop(((struct __pyx_obj_4dnet_fw *)__pyx_v_self)->fw,__pyx_f_4dnet___fw_callback,((void (*))__pyx_v__arg))); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; goto __pyx_L1;}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct fw_rule *, void *)
In file included from ../include/dnet.h:26,
from ./dnet.c:24:
../include/dnet/fw.h:50:38: note: expected ‘fw_handler’ {aka ‘int (*)(const struct fw_rule *, void *)’} but argument is of type ‘int (*)(struct fw_rule *, void *)’
50 | int fw_loop(fw_t *f, fw_handler callback, void *arg);
| ~~~~~~~~~~~^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_2fw___dealloc__’:
./dnet.c:5308:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
5308 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4rand_get’:
./dnet.c:5372:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
5372 | if (__pyx_2 = PyObject_RichCompareBool(__pyx_v_len, __pyx_1, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4rand_xrange’:
./dnet.c:5574:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
5574 | if (__pyx_1 = PyObject_RichCompareBool(__pyx_v_stop, Py_None, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4rand___dealloc__’:
./dnet.c:5642:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
5642 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_13__rand_xrange___init__’:
./dnet.c:5738:3: warning: label ‘__pyx_L5’ defined but not used [-Wunused-label]
5738 | __pyx_L5:;
| ^~~~~~~~
./dnet.c:5731:5: warning: label ‘__pyx_L4’ defined but not used [-Wunused-label]
5731 | __pyx_L4:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_13__rand_xrange___iter__’:
./dnet.c:5800:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
5800 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_13__rand_xrange___len__’:
./dnet.c:5819:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
5819 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_13__rand_xrange___next__’:
./dnet.c:5892:5: warning: label ‘__pyx_L6’ defined but not used [-Wunused-label]
5892 | __pyx_L6:;
| ^~~~~~~~
./dnet.c:5890:7: warning: label ‘__pyx_L5’ defined but not used [-Wunused-label]
5890 | __pyx_L5:;
| ^~~~~~~~
./dnet.c:5856:5: warning: label ‘__pyx_L3’ defined but not used [-Wunused-label]
5856 | __pyx_L3:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3tun_close’:
./dnet.c:6148:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
6148 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3tun___dealloc__’:
./dnet.c:6182:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
6182 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_tp_new_4dnet_eth’:
./dnet.c:6404:31: warning: unused variable ‘p’ [-Wunused-variable]
6404 | struct __pyx_obj_4dnet_eth *p = (struct __pyx_obj_4dnet_eth *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_eth’:
./dnet.c:6409:31: warning: unused variable ‘p’ [-Wunused-variable]
6409 | struct __pyx_obj_4dnet_eth *p = (struct __pyx_obj_4dnet_eth *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_eth’:
./dnet.c:6424:31: warning: unused variable ‘p’ [-Wunused-variable]
6424 | struct __pyx_obj_4dnet_eth *p = (struct __pyx_obj_4dnet_eth *)o;
| ^
./dnet.c:6423:7: warning: unused variable ‘e’ [-Wunused-variable]
6423 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_eth’:
./dnet.c:6429:31: warning: unused variable ‘p’ [-Wunused-variable]
6429 | struct __pyx_obj_4dnet_eth *p = (struct __pyx_obj_4dnet_eth *)o;
| ^
./dnet.c: At top level:
./dnet.c:6477:3: warning: excess elements in struct initializer
6477 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:6477:3: note: (near initialization for ‘__pyx_tp_as_number_eth’)
./dnet.c:6478:3: warning: excess elements in struct initializer
6478 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:6478:3: note: (near initialization for ‘__pyx_tp_as_number_eth’)
./dnet.c:6503:3: warning: excess elements in struct initializer
6503 | 0, /*bf_getsegcount*/
| ^
./dnet.c:6503:3: note: (near initialization for ‘__pyx_tp_as_buffer_eth’)
./dnet.c:6504:3: warning: excess elements in struct initializer
6504 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:6504:3: note: (near initialization for ‘__pyx_tp_as_buffer_eth’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_ip’:
./dnet.c:6557:30: warning: unused variable ‘p’ [-Wunused-variable]
6557 | struct __pyx_obj_4dnet_ip *p = (struct __pyx_obj_4dnet_ip *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_ip’:
./dnet.c:6562:30: warning: unused variable ‘p’ [-Wunused-variable]
6562 | struct __pyx_obj_4dnet_ip *p = (struct __pyx_obj_4dnet_ip *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_ip’:
./dnet.c:6577:30: warning: unused variable ‘p’ [-Wunused-variable]
6577 | struct __pyx_obj_4dnet_ip *p = (struct __pyx_obj_4dnet_ip *)o;
| ^
./dnet.c:6576:7: warning: unused variable ‘e’ [-Wunused-variable]
6576 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_ip’:
./dnet.c:6582:30: warning: unused variable ‘p’ [-Wunused-variable]
6582 | struct __pyx_obj_4dnet_ip *p = (struct __pyx_obj_4dnet_ip *)o;
| ^
./dnet.c: At top level:
./dnet.c:6628:3: warning: excess elements in struct initializer
6628 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:6628:3: note: (near initialization for ‘__pyx_tp_as_number_ip’)
./dnet.c:6629:3: warning: excess elements in struct initializer
6629 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:6629:3: note: (near initialization for ‘__pyx_tp_as_number_ip’)
./dnet.c:6654:3: warning: excess elements in struct initializer
6654 | 0, /*bf_getsegcount*/
| ^
./dnet.c:6654:3: note: (near initialization for ‘__pyx_tp_as_buffer_ip’)
./dnet.c:6655:3: warning: excess elements in struct initializer
6655 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:6655:3: note: (near initialization for ‘__pyx_tp_as_buffer_ip’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_addr’:
./dnet.c:6708:32: warning: unused variable ‘p’ [-Wunused-variable]
6708 | struct __pyx_obj_4dnet_addr *p = (struct __pyx_obj_4dnet_addr *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_addr’:
./dnet.c:6713:32: warning: unused variable ‘p’ [-Wunused-variable]
6713 | struct __pyx_obj_4dnet_addr *p = (struct __pyx_obj_4dnet_addr *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_addr’:
./dnet.c:6719:32: warning: unused variable ‘p’ [-Wunused-variable]
6719 | struct __pyx_obj_4dnet_addr *p = (struct __pyx_obj_4dnet_addr *)o;
| ^
./dnet.c:6718:7: warning: unused variable ‘e’ [-Wunused-variable]
6718 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_addr’:
./dnet.c:6724:32: warning: unused variable ‘p’ [-Wunused-variable]
6724 | struct __pyx_obj_4dnet_addr *p = (struct __pyx_obj_4dnet_addr *)o;
| ^
./dnet.c: At top level:
./dnet.c:6839:3: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} [-Wincompatible-pointer-types]
6839 | __pyx_f_4dnet_4addr___long__, /*nb_long*/
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./dnet.c:6839:3: note: (near initialization for ‘__pyx_tp_as_number_addr.nb_inplace_add’)
./dnet.c:6856:3: warning: excess elements in struct initializer
6856 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:6856:3: note: (near initialization for ‘__pyx_tp_as_number_addr’)
./dnet.c:6857:3: warning: excess elements in struct initializer
6857 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:6857:3: note: (near initialization for ‘__pyx_tp_as_number_addr’)
./dnet.c:6882:3: warning: excess elements in struct initializer
6882 | 0, /*bf_getsegcount*/
| ^
./dnet.c:6882:3: note: (near initialization for ‘__pyx_tp_as_buffer_addr’)
./dnet.c:6883:3: warning: excess elements in struct initializer
6883 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:6883:3: note: (near initialization for ‘__pyx_tp_as_buffer_addr’)
./dnet.c:6895:3: warning: initialization of ‘PyAsyncMethods *’ from incompatible pointer type ‘int (*)(PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
6895 | __pyx_f_4dnet_4addr___cmp__, /*tp_compare*/
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./dnet.c:6895:3: note: (near initialization for ‘__pyx_type_4dnet_addr.tp_as_async’)
./dnet.c: In function ‘__pyx_tp_new_4dnet___addr_ip4_iter’:
./dnet.c:6936:43: warning: unused variable ‘p’ [-Wunused-variable]
6936 | struct __pyx_obj_4dnet___addr_ip4_iter *p = (struct __pyx_obj_4dnet___addr_ip4_iter *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet___addr_ip4_iter’:
./dnet.c:6941:43: warning: unused variable ‘p’ [-Wunused-variable]
6941 | struct __pyx_obj_4dnet___addr_ip4_iter *p = (struct __pyx_obj_4dnet___addr_ip4_iter *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet___addr_ip4_iter’:
./dnet.c:6947:43: warning: unused variable ‘p’ [-Wunused-variable]
6947 | struct __pyx_obj_4dnet___addr_ip4_iter *p = (struct __pyx_obj_4dnet___addr_ip4_iter *)o;
| ^
./dnet.c:6946:7: warning: unused variable ‘e’ [-Wunused-variable]
6946 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet___addr_ip4_iter’:
./dnet.c:6952:43: warning: unused variable ‘p’ [-Wunused-variable]
6952 | struct __pyx_obj_4dnet___addr_ip4_iter *p = (struct __pyx_obj_4dnet___addr_ip4_iter *)o;
| ^
./dnet.c: At top level:
./dnet.c:6997:3: warning: excess elements in struct initializer
6997 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:6997:3: note: (near initialization for ‘__pyx_tp_as_number___addr_ip4_iter’)
./dnet.c:6998:3: warning: excess elements in struct initializer
6998 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:6998:3: note: (near initialization for ‘__pyx_tp_as_number___addr_ip4_iter’)
./dnet.c:7023:3: warning: excess elements in struct initializer
7023 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7023:3: note: (near initialization for ‘__pyx_tp_as_buffer___addr_ip4_iter’)
./dnet.c:7024:3: warning: excess elements in struct initializer
7024 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7024:3: note: (near initialization for ‘__pyx_tp_as_buffer___addr_ip4_iter’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_arp’:
./dnet.c:7077:31: warning: unused variable ‘p’ [-Wunused-variable]
7077 | struct __pyx_obj_4dnet_arp *p = (struct __pyx_obj_4dnet_arp *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_arp’:
./dnet.c:7082:31: warning: unused variable ‘p’ [-Wunused-variable]
7082 | struct __pyx_obj_4dnet_arp *p = (struct __pyx_obj_4dnet_arp *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_arp’:
./dnet.c:7097:31: warning: unused variable ‘p’ [-Wunused-variable]
7097 | struct __pyx_obj_4dnet_arp *p = (struct __pyx_obj_4dnet_arp *)o;
| ^
./dnet.c:7096:7: warning: unused variable ‘e’ [-Wunused-variable]
7096 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_arp’:
./dnet.c:7102:31: warning: unused variable ‘p’ [-Wunused-variable]
7102 | struct __pyx_obj_4dnet_arp *p = (struct __pyx_obj_4dnet_arp *)o;
| ^
./dnet.c: At top level:
./dnet.c:7151:3: warning: excess elements in struct initializer
7151 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7151:3: note: (near initialization for ‘__pyx_tp_as_number_arp’)
./dnet.c:7152:3: warning: excess elements in struct initializer
7152 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7152:3: note: (near initialization for ‘__pyx_tp_as_number_arp’)
./dnet.c:7177:3: warning: excess elements in struct initializer
7177 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7177:3: note: (near initialization for ‘__pyx_tp_as_buffer_arp’)
./dnet.c:7178:3: warning: excess elements in struct initializer
7178 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7178:3: note: (near initialization for ‘__pyx_tp_as_buffer_arp’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_intf’:
./dnet.c:7231:32: warning: unused variable ‘p’ [-Wunused-variable]
7231 | struct __pyx_obj_4dnet_intf *p = (struct __pyx_obj_4dnet_intf *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_intf’:
./dnet.c:7236:32: warning: unused variable ‘p’ [-Wunused-variable]
7236 | struct __pyx_obj_4dnet_intf *p = (struct __pyx_obj_4dnet_intf *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_intf’:
./dnet.c:7251:32: warning: unused variable ‘p’ [-Wunused-variable]
7251 | struct __pyx_obj_4dnet_intf *p = (struct __pyx_obj_4dnet_intf *)o;
| ^
./dnet.c:7250:7: warning: unused variable ‘e’ [-Wunused-variable]
7250 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_intf’:
./dnet.c:7256:32: warning: unused variable ‘p’ [-Wunused-variable]
7256 | struct __pyx_obj_4dnet_intf *p = (struct __pyx_obj_4dnet_intf *)o;
| ^
./dnet.c: At top level:
./dnet.c:7306:3: warning: excess elements in struct initializer
7306 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7306:3: note: (near initialization for ‘__pyx_tp_as_number_intf’)
./dnet.c:7307:3: warning: excess elements in struct initializer
7307 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7307:3: note: (near initialization for ‘__pyx_tp_as_number_intf’)
./dnet.c:7332:3: warning: excess elements in struct initializer
7332 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7332:3: note: (near initialization for ‘__pyx_tp_as_buffer_intf’)
./dnet.c:7333:3: warning: excess elements in struct initializer
7333 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7333:3: note: (near initialization for ‘__pyx_tp_as_buffer_intf’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_route’:
./dnet.c:7386:33: warning: unused variable ‘p’ [-Wunused-variable]
7386 | struct __pyx_obj_4dnet_route *p = (struct __pyx_obj_4dnet_route *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_route’:
./dnet.c:7391:33: warning: unused variable ‘p’ [-Wunused-variable]
7391 | struct __pyx_obj_4dnet_route *p = (struct __pyx_obj_4dnet_route *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_route’:
./dnet.c:7406:33: warning: unused variable ‘p’ [-Wunused-variable]
7406 | struct __pyx_obj_4dnet_route *p = (struct __pyx_obj_4dnet_route *)o;
| ^
./dnet.c:7405:7: warning: unused variable ‘e’ [-Wunused-variable]
7405 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_route’:
./dnet.c:7411:33: warning: unused variable ‘p’ [-Wunused-variable]
7411 | struct __pyx_obj_4dnet_route *p = (struct __pyx_obj_4dnet_route *)o;
| ^
./dnet.c: At top level:
./dnet.c:7460:3: warning: excess elements in struct initializer
7460 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7460:3: note: (near initialization for ‘__pyx_tp_as_number_route’)
./dnet.c:7461:3: warning: excess elements in struct initializer
7461 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7461:3: note: (near initialization for ‘__pyx_tp_as_number_route’)
./dnet.c:7486:3: warning: excess elements in struct initializer
7486 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7486:3: note: (near initialization for ‘__pyx_tp_as_buffer_route’)
./dnet.c:7487:3: warning: excess elements in struct initializer
7487 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7487:3: note: (near initialization for ‘__pyx_tp_as_buffer_route’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_fw’:
./dnet.c:7540:30: warning: unused variable ‘p’ [-Wunused-variable]
7540 | struct __pyx_obj_4dnet_fw *p = (struct __pyx_obj_4dnet_fw *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_fw’:
./dnet.c:7545:30: warning: unused variable ‘p’ [-Wunused-variable]
7545 | struct __pyx_obj_4dnet_fw *p = (struct __pyx_obj_4dnet_fw *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_fw’:
./dnet.c:7560:30: warning: unused variable ‘p’ [-Wunused-variable]
7560 | struct __pyx_obj_4dnet_fw *p = (struct __pyx_obj_4dnet_fw *)o;
| ^
./dnet.c:7559:7: warning: unused variable ‘e’ [-Wunused-variable]
7559 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_fw’:
./dnet.c:7565:30: warning: unused variable ‘p’ [-Wunused-variable]
7565 | struct __pyx_obj_4dnet_fw *p = (struct __pyx_obj_4dnet_fw *)o;
| ^
./dnet.c: At top level:
./dnet.c:7613:3: warning: excess elements in struct initializer
7613 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7613:3: note: (near initialization for ‘__pyx_tp_as_number_fw’)
./dnet.c:7614:3: warning: excess elements in struct initializer
7614 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7614:3: note: (near initialization for ‘__pyx_tp_as_number_fw’)
./dnet.c:7639:3: warning: excess elements in struct initializer
7639 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7639:3: note: (near initialization for ‘__pyx_tp_as_buffer_fw’)
./dnet.c:7640:3: warning: excess elements in struct initializer
7640 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7640:3: note: (near initialization for ‘__pyx_tp_as_buffer_fw’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_rand’:
./dnet.c:7693:32: warning: unused variable ‘p’ [-Wunused-variable]
7693 | struct __pyx_obj_4dnet_rand *p = (struct __pyx_obj_4dnet_rand *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_rand’:
./dnet.c:7698:32: warning: unused variable ‘p’ [-Wunused-variable]
7698 | struct __pyx_obj_4dnet_rand *p = (struct __pyx_obj_4dnet_rand *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_rand’:
./dnet.c:7713:32: warning: unused variable ‘p’ [-Wunused-variable]
7713 | struct __pyx_obj_4dnet_rand *p = (struct __pyx_obj_4dnet_rand *)o;
| ^
./dnet.c:7712:7: warning: unused variable ‘e’ [-Wunused-variable]
7712 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_rand’:
./dnet.c:7718:32: warning: unused variable ‘p’ [-Wunused-variable]
7718 | struct __pyx_obj_4dnet_rand *p = (struct __pyx_obj_4dnet_rand *)o;
| ^
./dnet.c: At top level:
./dnet.c:7770:3: warning: excess elements in struct initializer
7770 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7770:3: note: (near initialization for ‘__pyx_tp_as_number_rand’)
./dnet.c:7771:3: warning: excess elements in struct initializer
7771 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7771:3: note: (near initialization for ‘__pyx_tp_as_number_rand’)
./dnet.c:7796:3: warning: excess elements in struct initializer
7796 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7796:3: note: (near initialization for ‘__pyx_tp_as_buffer_rand’)
./dnet.c:7797:3: warning: excess elements in struct initializer
7797 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7797:3: note: (near initialization for ‘__pyx_tp_as_buffer_rand’)
./dnet.c: In function ‘__pyx_tp_new_4dnet___rand_xrange’:
./dnet.c:7850:41: warning: unused variable ‘p’ [-Wunused-variable]
7850 | struct __pyx_obj_4dnet___rand_xrange *p = (struct __pyx_obj_4dnet___rand_xrange *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet___rand_xrange’:
./dnet.c:7855:41: warning: unused variable ‘p’ [-Wunused-variable]
7855 | struct __pyx_obj_4dnet___rand_xrange *p = (struct __pyx_obj_4dnet___rand_xrange *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet___rand_xrange’:
./dnet.c:7861:41: warning: unused variable ‘p’ [-Wunused-variable]
7861 | struct __pyx_obj_4dnet___rand_xrange *p = (struct __pyx_obj_4dnet___rand_xrange *)o;
| ^
./dnet.c:7860:7: warning: unused variable ‘e’ [-Wunused-variable]
7860 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet___rand_xrange’:
./dnet.c:7866:41: warning: unused variable ‘p’ [-Wunused-variable]
7866 | struct __pyx_obj_4dnet___rand_xrange *p = (struct __pyx_obj_4dnet___rand_xrange *)o;
| ^
./dnet.c: At top level:
./dnet.c:7911:3: warning: excess elements in struct initializer
7911 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7911:3: note: (near initialization for ‘__pyx_tp_as_number___rand_xrange’)
./dnet.c:7912:3: warning: excess elements in struct initializer
7912 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7912:3: note: (near initialization for ‘__pyx_tp_as_number___rand_xrange’)
./dnet.c:7937:3: warning: excess elements in struct initializer
7937 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7937:3: note: (near initialization for ‘__pyx_tp_as_buffer___rand_xrange’)
./dnet.c:7938:3: warning: excess elements in struct initializer
7938 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7938:3: note: (near initialization for ‘__pyx_tp_as_buffer___rand_xrange’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_tun’:
./dnet.c:7991:31: warning: unused variable ‘p’ [-Wunused-variable]
7991 | struct __pyx_obj_4dnet_tun *p = (struct __pyx_obj_4dnet_tun *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_tun’:
./dnet.c:7996:31: warning: unused variable ‘p’ [-Wunused-variable]
7996 | struct __pyx_obj_4dnet_tun *p = (struct __pyx_obj_4dnet_tun *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_tun’:
./dnet.c:8011:31: warning: unused variable ‘p’ [-Wunused-variable]
8011 | struct __pyx_obj_4dnet_tun *p = (struct __pyx_obj_4dnet_tun *)o;
| ^
./dnet.c:8010:7: warning: unused variable ‘e’ [-Wunused-variable]
8010 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_tun’:
./dnet.c:8016:31: warning: unused variable ‘p’ [-Wunused-variable]
8016 | struct __pyx_obj_4dnet_tun *p = (struct __pyx_obj_4dnet_tun *)o;
| ^
./dnet.c: At top level:
./dnet.c:8079:3: warning: excess elements in struct initializer
8079 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:8079:3: note: (near initialization for ‘__pyx_tp_as_number_tun’)
./dnet.c:8080:3: warning: excess elements in struct initializer
8080 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:8080:3: note: (near initialization for ‘__pyx_tp_as_number_tun’)
./dnet.c:8105:3: warning: excess elements in struct initializer
8105 | 0, /*bf_getsegcount*/
| ^
./dnet.c:8105:3: note: (near initialization for ‘__pyx_tp_as_buffer_tun’)
./dnet.c:8106:3: warning: excess elements in struct initializer
8106 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:8106:3: note: (near initialization for ‘__pyx_tp_as_buffer_tun’)
./dnet.c: In function ‘__Pyx_EndUnpack’:
./dnet.c:9275:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
9275 | if (item = PySequence_GetItem(seq, i)) {
| ^~~~
./dnet.c: At top level:
./dnet.c:32:12: warning: ‘__Pyx_PrintItem’ declared ‘static’ but never defined [-Wunused-function]
32 | static int __Pyx_PrintItem(PyObject *); /*proto*/
| ^~~~~~~~~~~~~~~
./dnet.c:33:12: warning: ‘__Pyx_PrintNewline’ declared ‘static’ but never defined [-Wunused-function]
33 | static int __Pyx_PrintNewline(void); /*proto*/
| ^~~~~~~~~~~~~~~~~~
./dnet.c:35:13: warning: ‘__Pyx_ReRaise’ declared ‘static’ but never defined [-Wunused-function]
35 | static void __Pyx_ReRaise(void); /*proto*/
| ^~~~~~~~~~~~~
./dnet.c:36:18: warning: ‘__Pyx_Import’ declared ‘static’ but never defined [-Wunused-function]
36 | static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
| ^~~~~~~~~~~~
./dnet.c:37:18: warning: ‘__Pyx_GetExcValue’ declared ‘static’ but never defined [-Wunused-function]
37 | static PyObject *__Pyx_GetExcValue(void); /*proto*/
| ^~~~~~~~~~~~~~~~~
./dnet.c:40:12: warning: ‘__Pyx_GetStarArgs’ declared ‘static’ but never defined [-Wunused-function]
40 | static int __Pyx_GetStarArgs(PyObject **args, PyObject **kwds, char *kwd_list[], Py_ssize_t nargs, PyObject **args2, PyObject **kwds2); /*proto*/
| ^~~~~~~~~~~~~~~~~
./dnet.c:41:13: warning: ‘__Pyx_WriteUnraisable’ declared ‘static’ but never defined [-Wunused-function]
41 | static void __Pyx_WriteUnraisable(char *name); /*proto*/
| ^~~~~~~~~~~~~~~~~~~~~
./dnet.c:43:22: warning: ‘__Pyx_ImportType’ declared ‘static’ but never defined [-Wunused-function]
43 | static PyTypeObject *__Pyx_ImportType(char *module_name, char *class_name, long size); /*proto*/
| ^~~~~~~~~~~~~~~~
./dnet.c:44:12: warning: ‘__Pyx_SetVtable’ declared ‘static’ but never defined [-Wunused-function]
44 | static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
| ^~~~~~~~~~~~~~~
./dnet.c:45:12: warning: ‘__Pyx_GetVtable’ declared ‘static’ but never defined [-Wunused-function]
45 | static int __Pyx_GetVtable(PyObject *dict, void *vtabptr); /*proto*/
| ^~~~~~~~~~~~~~~
./dnet.c:46:18: warning: ‘__Pyx_CreateClass’ declared ‘static’ but never defined [-Wunused-function]
46 | static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name, char *modname); /*proto*/
| ^~~~~~~~~~~~~~~~~
./dnet.c:49:12: warning: ‘__Pyx_InitCApi’ declared ‘static’ but never defined [-Wunused-function]
49 | static int __Pyx_InitCApi(PyObject *module); /*proto*/
| ^~~~~~~~~~~~~~
./dnet.c:50:12: warning: ‘__Pyx_ImportModuleCApi’ declared ‘static’ but never defined [-Wunused-function]
50 | static int __Pyx_ImportModuleCApi(__Pyx_CApiTabEntry *t); /*proto*/
| ^~~~~~~~~~~~~~~~~~~~~~
./dnet.c:3649:3: warning: type of ‘strlcpy’ does not match original declaration [-Wlto-type-mismatch]
3649 | strlcpy(__pyx_v_entry->intf_name,__pyx_2,16);
| ^
../src/strlcpy.c:43:1: note: return value type mismatch
43 | strlcpy(dst, src, siz)
| ^
../src/strlcpy.c:43:1: note: type ‘size_t’ should match type ‘int’
../src/../include/config.h:298:5: warning: type of ‘strlcpy’ does not match original declaration [-Wlto-type-mismatch]
298 | int strlcpy(char *, const char *, int);
| ^
../src/strlcpy.c:43:1: note: return value type mismatch
43 | strlcpy(dst, src, siz)
| ^
../src/strlcpy.c:43:1: note: type ‘size_t’ should match type ‘int’
../src/strlcpy.c:43:1: note: ‘strlcpy’ was previously declared here
../src/strlcpy.c:43:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
gentle pin 😄
Please have a look at the new branch, where I tried removing the local versions of strl* and strsep: https://github.com/ofalk/libdnet/commit/58d3a7915104bb1d6605c8ddc484fc5951546ca9
Thanks for the ping @kloczek !
Cannot apply that commit on top of master. Do you have maybe some plans to make the new release soon? 🤔
If you are thinking that issue is resolved feel free to close it. I'll retest it on next release. Thx 😃
New release has been created: 1.16 (yes, 1.15 skipped)
Note: Python bindings are currently not really working fine, but that's another story.
There are sill some LTO related warnings. Updated stats for 1.16
90 -Wformat-extra-args
20 -Wpointer-sign
2 -Wunused-variable
2 -Wsizeof-pointer-memaccess
1 -Wunused-result
1 -Wstringop-overread
1 -Wlto-type-mismatch
autoreconf from autoconf 2.71 shows as well some arnings.
At the end of the log is as well -fno-strict-aliasing
warning. All warnings:
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: aclocal --force
autoreconf: running: /usr/bin/autoconf --force
configure.ac:41: warning: The macro `AC_LIBTOOL_DLOPEN' is obsolete.
configure.ac:41: You should run autoupdate.
m4/ltoptions.m4:113: AC_LIBTOOL_DLOPEN is expanded from...
configure.ac:41: the top level
configure.ac:41: warning: AC_LIBTOOL_DLOPEN: Remove this warning and the call to _LT_SET_OPTION when you
configure.ac:41: put the 'dlopen' option into LT_INIT's first parameter.
./lib/autoconf/general.m4:2434: AC_DIAGNOSE is expanded from...
m4/ltoptions.m4:113: AC_LIBTOOL_DLOPEN is expanded from...
configure.ac:41: the top level
configure.ac:42: warning: The macro `AM_PROG_LIBTOOL' is obsolete.
configure.ac:42: You should run autoupdate.
m4/libtool.m4:101: AM_PROG_LIBTOOL is expanded from...
configure.ac:42: the top level
configure.ac:47: warning: The macro `AC_ERROR' is obsolete.
configure.ac:47: You should run autoupdate.
./lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
configure.ac:47: the top level
configure.ac:131: warning: The macro `AC_ERROR' is obsolete.
configure.ac:131: You should run autoupdate.
./lib/autoconf/oldnames.m4:34: AC_ERROR is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
configure.ac:131: the top level
configure.ac:168: warning: The macro `AC_HEADER_STDC' is obsolete.
configure.ac:168: You should run autoupdate.
./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from...
configure.ac:168: the top level
configure.ac:191: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:191: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
m4/acinclude.m4:30: AC_DNET_SOCKADDR_IN6 is expanded from...
configure.ac:191: the top level
configure.ac:193: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:193: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
m4/acinclude.m4:7: AC_DNET_SOCKADDR_SA_LEN is expanded from...
configure.ac:193: the top level
configure.ac:196: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:196: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
m4/acinclude.m4:51: AC_DNET_ARPREQ_ARP_DEV is expanded from...
configure.ac:196: the top level
configure.ac:199: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:199: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
m4/acinclude.m4:72: AC_DNET_ROUTE_RT_MSGHDR is expanded from...
configure.ac:199: the top level
configure.ac:214: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:214: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
m4/acinclude.m4:137: AC_DNET_LINUX_PF_PACKET is expanded from...
configure.ac:214: the top level
configure.ac:329: warning: AC_OUTPUT should be used without arguments.
configure.ac:329: You should run autoupdate.
autoreconf: running: /usr/bin/autoheader --force
autoheader: warning: WARNING: Using auxiliary files such as 'acconfig.h', 'config.h.bot'
autoheader: WARNING: and 'config.h.top', to define templates for 'config.h.in'
autoheader: WARNING: is deprecated and discouraged.
autoheader:
autoheader: WARNING: Using the third argument of 'AC_DEFINE_UNQUOTED' and
autoheader: WARNING: 'AC_DEFINE' allows one to define a template without
autoheader: WARNING: 'acconfig.h':
autoheader:
autoheader: WARNING: AC_DEFINE([NEED_FUNC_MAIN], 1,
autoheader: [Define if a function 'main' is needed.])
autoheader:
autoheader: WARNING: More sophisticated templates can also be produced, see the
autoheader: WARNING: documentation.
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:18: installing 'config/compile'
configure.ac:14: installing 'config/missing'
parallel-tests: installing 'config/test-driver'
autoreconf: Leaving directory '.'
ndisc-linux.c: In function 'ndisc_modify':
ndisc-linux.c:78:24: warning: unused variable 'rta' [-Wunused-variable]
78 | struct rtattr *rta;
| ^~~
rand.c: In function 'rand_open':
rand.c:84:17: warning: ignoring return value of 'read' declared with attribute 'warn_unused_result' [-Wunused-result]
84 | read(fd, seed + sizeof(*tv), sizeof(seed) - sizeof(*tv));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/config.h:298:5: warning: type of 'strlcpy' does not match original declaration [-Wlto-type-mismatch]
298 | int strlcpy(char *, const char *, int);
| ^
strlcpy.c:43:1: note: return value type mismatch
43 | strlcpy(dst, src, siz)
| ^
strlcpy.c:43:1: note: type 'size_t' should match type 'int'
strlcpy.c:43:1: note: 'strlcpy' was previously declared here
strlcpy.c:43:1: note: code may be misoptimized unless '-fno-strict-aliasing' is used
In file included from check_fw.c:10:
check_fw.c: In function 'test_fw_openclose_fn':
check_fw.c:21:47: warning: too many arguments for format [-Wformat-extra-args]
21 | fail_unless((fw = fw_open()) != NULL, "open failed");
| ^~~~~~~~~~~~~
check_fw.c:22:50: warning: too many arguments for format [-Wformat-extra-args]
22 | fail_unless((fw = fw_close(fw)) == NULL, "closed failed");
| ^~~~~~~~~~~~~~~
check_fw.c: At top level:
check_fw.c:41:12: warning: 'test_fw_close' defined but not used [-Wunused-variable]
41 | START_TEST(test_fw_close)
| ^~~~~~~~~~~~~
In file included from check_arp.c:10:
check_arp.c: In function 'test_arp_openclose_fn':
check_arp.c:21:47: warning: too many arguments for format [-Wformat-extra-args]
21 | fail_unless((a = arp_open()) != NULL, "open failed");
| ^~~~~~~~~~~~~
check_arp.c:22:49: warning: too many arguments for format [-Wformat-extra-args]
22 | fail_unless((a = arp_close(a)) == NULL, "close failed");
| ^~~~~~~~~~~~~~
In file included from check_route.c:10:
check_route.c: In function 'test_route_openclose_fn':
check_route.c:16:49: warning: too many arguments for format [-Wformat-extra-args]
16 | fail_unless((r = route_open()) != NULL, "open failed");
| ^~~~~~~~~~~~~
check_route.c:17:51: warning: too many arguments for format [-Wformat-extra-args]
17 | fail_unless((r = route_close(r)) == NULL, "close failed");
| ^~~~~~~~~~~~~~
In file included from check_ip.c:10:
check_ip.c: In function 'test_ip_openclose_fn':
check_ip.c:21:46: warning: too many arguments for format [-Wformat-extra-args]
21 | fail_unless((i = ip_open()) != NULL, "open failed");
| ^~~~~~~~~~~~~
check_ip.c:22:48: warning: too many arguments for format [-Wformat-extra-args]
22 | fail_unless((i = ip_close(i)) == NULL, "close failed");
| ^~~~~~~~~~~~~~
In file included from check_intf.c:10:
check_intf.c: In function 'test_intf_openclose_fn':
check_intf.c:16:48: warning: too many arguments for format [-Wformat-extra-args]
16 | fail_unless((i = intf_open()) != NULL, "open failed");
| ^~~~~~~~~~~~~
check_intf.c:17:50: warning: too many arguments for format [-Wformat-extra-args]
17 | fail_unless((i = intf_close(i)) == NULL, "closed failed");
| ^~~~~~~~~~~~~~~
check_intf.c: In function 'test_intf_get_fn':
check_intf.c:28:46: warning: too many arguments for format [-Wformat-extra-args]
28 | fail_unless(intf_get(i, &ifent) < 0, "didn't fail on empty request");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_intf.c:30:46: warning: too many arguments for format [-Wformat-extra-args]
30 | fail_unless(intf_get(i, &ifent) < 0, "didn't fail on empty name");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from check_blob.c:10:
check_blob.c: In function 'test_blob_newfree_fn':
check_blob.c:16:47: warning: too many arguments for format [-Wformat-extra-args]
16 | fail_unless((b = blob_new()) != NULL, "new failed");
| ^~~~~~~~~~~~
check_blob.c:17:49: warning: too many arguments for format [-Wformat-extra-args]
17 | fail_unless((b = blob_free(b)) == NULL, "free failed");
| ^~~~~~~~~~~~~
check_blob.c: In function 'test_blob_readwrite_fn':
check_blob.c:33:49: warning: too many arguments for format [-Wformat-extra-args]
33 | fail_unless(strcmp(tmp, "foobar") == 0, "read1 failed");
| ^~~~~~~~~~~~~~
check_blob.c:35:49: warning: too many arguments for format [-Wformat-extra-args]
35 | fail_unless(strcmp(tmp, "spazzo") == 0, "read2 failed");
| ^~~~~~~~~~~~~~
check_blob.c:37:49: warning: too many arguments for format [-Wformat-extra-args]
37 | fail_unless(strcmp(tmp, "doofus") == 0, "read3 failed");
| ^~~~~~~~~~~~~~
check_blob.c: In function 'test_blob_insertdelete_fn':
check_blob.c:48:52: warning: too many arguments for format [-Wformat-extra-args]
48 | fail_unless(blob_insert(b, "foo", 3) == 3, "insert1 failed");
| ^~~~~~~~~~~~~~~~
check_blob.c:50:52: warning: too many arguments for format [-Wformat-extra-args]
50 | fail_unless(blob_insert(b, "bar", 3) == 3, "insert2 failed");
| ^~~~~~~~~~~~~~~~
check_blob.c:54:48: warning: too many arguments for format [-Wformat-extra-args]
54 | fail_unless(strcmp(tmp,"barfoo") == 0, "read failed");
| ^~~~~~~~~~~~~
check_blob.c:56:51: warning: too many arguments for format [-Wformat-extra-args]
56 | fail_unless(blob_delete(b, NULL, 3) == 3, "delete failed");
| ^~~~~~~~~~~~~~~
check_blob.c:60:45: warning: too many arguments for format [-Wformat-extra-args]
60 | fail_unless(strcmp(tmp,"foo") == 0, "read failed");
| ^~~~~~~~~~~~~
check_blob.c:62:50: warning: too many arguments for format [-Wformat-extra-args]
62 | fail_unless(blob_delete(b, NULL, 4) < 0, "deleted more than size");
| ^~~~~~~~~~~~~~~~~~~~~~~~
check_blob.c:65:17: warning: pointer targets in assignment from 'char *' to 'u_char *' {aka 'unsigned char *'} differ in signedness [-Wpointer-sign]
65 | bf.base = "foobar";
| ^
check_blob.c:69:56: warning: too many arguments for format [-Wformat-extra-args]
69 | fail_unless(blob_insert(&bf, "foobar", 6) < 0, "inserted into fixed");
| ^~~~~~~~~~~~~~~~~~~~~
check_blob.c:70:52: warning: too many arguments for format [-Wformat-extra-args]
70 | fail_unless(blob_delete(&bf, NULL, 3) < 0, "deleted from fixed");
| ^~~~~~~~~~~~~~~~~~~~
check_blob.c: In function 'test_blob_packunpack_fn':
check_blob.c:98:13: warning: too many arguments for format [-Wformat-extra-args]
98 | "pack failed");
| ^~~~~~~~~~~~~
check_blob.c:106:13: warning: too many arguments for format [-Wformat-extra-args]
106 | "unpack failed");
| ^~~~~~~~~~~~~~~
check_blob.c:114:22: warning: too many arguments for format [-Wformat-extra-args]
114 | fail("unpacked weird crap");
| ^~~~~~~~~~~~~~~~~~~~~
check_blob.c: In function 'test_blob_seek_fn':
check_blob.c:127:43: warning: too many arguments for format [-Wformat-extra-args]
127 | fail_unless(blob_skip(b, 3) == 3, "skip failed");
| ^~~~~~~~~~~~~
check_blob.c:128:43: warning: too many arguments for format [-Wformat-extra-args]
128 | fail_unless(blob_skip(b, 3) == 6, "skip to end failed");
| ^~~~~~~~~~~~~~~~~~~~
check_blob.c:129:42: warning: too many arguments for format [-Wformat-extra-args]
129 | fail_unless(blob_skip(b, 1) < 0, "skipped past end");
| ^~~~~~~~~~~~~~~~~~
check_blob.c:130:54: warning: too many arguments for format [-Wformat-extra-args]
130 | fail_unless(blob_seek(b, -1, SEEK_END) == 5, "end seek failed");
| ^~~~~~~~~~~~~~~~~
check_blob.c:131:53: warning: too many arguments for format [-Wformat-extra-args]
131 | fail_unless(blob_seek(b, 1, SEEK_SET) == 1, "set seek failed");
| ^~~~~~~~~~~~~~~~~
check_blob.c:133:53: warning: too many arguments for format [-Wformat-extra-args]
133 | fail_unless(blob_seek(b, -1, SEEK_CUR) < 0, "seeked past 0");
| ^~~~~~~~~~~~~~~
check_blob.c:134:53: warning: too many arguments for format [-Wformat-extra-args]
134 | fail_unless(blob_seek(b, 3, SEEK_CUR) == 3, "cur seek failed");
| ^~~~~~~~~~~~~~~~~
check_blob.c: In function 'test_blob_index_fn':
check_blob.c:146:52: warning: too many arguments for format [-Wformat-extra-args]
146 | fail_unless(blob_index(b, "this", 4) == 0, "index start failed");
| ^~~~~~~~~~~~~~~~~~~~
check_blob.c:147:50: warning: too many arguments for format [-Wformat-extra-args]
147 | fail_unless(blob_index(b, "!", 1) == 19, "index end failed");
| ^~~~~~~~~~~~~~~~~~
check_blob.c:148:53: warning: too many arguments for format [-Wformat-extra-args]
148 | fail_unless(blob_index(b, "only ", 5) == 8, "index middle failed");
| ^~~~~~~~~~~~~~~~~~~~~
check_blob.c:149:51: warning: too many arguments for format [-Wformat-extra-args]
149 | fail_unless(blob_rindex(b, "!", 1) == 19, "rindex end failed");
| ^~~~~~~~~~~~~~~~~~~
check_blob.c:150:53: warning: too many arguments for format [-Wformat-extra-args]
150 | fail_unless(blob_rindex(b, "this", 4) == 0, "rindex start failed");
| ^~~~~~~~~~~~~~~~~~~~~
check_blob.c:151:54: warning: too many arguments for format [-Wformat-extra-args]
151 | fail_unless(blob_rindex(b, "only ", 5) == 8, "rindex middle failed");
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from check_rand.c:10:
check_rand.c: In function 'test_rand_openclose_fn':
check_rand.c:16:48: warning: too many arguments for format [-Wformat-extra-args]
16 | fail_unless((r = rand_open()) != NULL, "open failed");
| ^~~~~~~~~~~~~
check_rand.c:17:50: warning: too many arguments for format [-Wformat-extra-args]
17 | fail_unless((r = rand_close(r)) == NULL, "close failed");
| ^~~~~~~~~~~~~~
check_rand.c: In function 'test_rand_get_fn':
check_rand.c:27:54: warning: too many arguments for format [-Wformat-extra-args]
27 | fail_unless(rand_get(r, &i, sizeof(i)) == 0, "get failed");
| ^~~~~~~~~~~~
check_rand.c: In function 'test_rand_set_fn':
check_rand.c:43:59: warning: too many arguments for format [-Wformat-extra-args]
43 | fail_unless(rand_get(r, buf1, sizeof(buf1)) == 0, "get failed");
| ^~~~~~~~~~~~
check_rand.c:44:60: warning: too many arguments for format [-Wformat-extra-args]
44 | fail_unless(memcmp(buf1, buf2, sizeof(buf1)) != 0, "get b0rked");
| ^~~~~~~~~~~~
check_rand.c:45:54: warning: too many arguments for format [-Wformat-extra-args]
45 | fail_unless(rand_set(r, &i, sizeof(i)) == 0, "set failed");
| ^~~~~~~~~~~~
check_rand.c:46:59: warning: too many arguments for format [-Wformat-extra-args]
46 | fail_unless(rand_get(r, buf2, sizeof(buf2)) == 0, "get2 failed");
| ^~~~~~~~~~~~~
check_rand.c:47:60: warning: too many arguments for format [-Wformat-extra-args]
47 | fail_unless(memcmp(buf1, buf2, sizeof(buf1)) != 0, "set/get b0rked");
| ^~~~~~~~~~~~~~~~
check_rand.c:48:54: warning: too many arguments for format [-Wformat-extra-args]
48 | fail_unless(rand_set(r, &i, sizeof(i)) == 0, "set2 failed");
| ^~~~~~~~~~~~~
check_rand.c:49:59: warning: too many arguments for format [-Wformat-extra-args]
49 | fail_unless(rand_get(r, buf1, sizeof(buf1)) == 0, "get3 failed");
| ^~~~~~~~~~~~~
check_rand.c:50:60: warning: too many arguments for format [-Wformat-extra-args]
50 | fail_unless(memcmp(buf1, buf2, sizeof(buf1)) == 0, "set b0rked");
| ^~~~~~~~~~~~
check_rand.c: In function 'test_rand_shuffle_fn':
check_rand.c:64:53: warning: too many arguments for format [-Wformat-extra-args]
64 | fail_unless(strcmp(buf, SHUFFLE_TEXT) != 0, "shuffle failed");
| ^~~~~~~~~~~~~~~~
In file included from check_addr.c:16:
check_addr.c: In function 'test_addr_pack_fn':
check_addr.c:46:53: warning: too many arguments for format [-Wformat-extra-args]
46 | fail_unless(memcmp(&a, &b, sizeof(a)) == 0, "got different address");
| ^~~~~~~~~~~~~~~~~~~~~~~
check_addr.c: In function 'test_addr_cmp_fn':
check_addr.c:56:44: warning: too many arguments for format [-Wformat-extra-args]
56 | fail_unless(addr_cmp(&a, &b) == 0, "failed on equal addresses");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:58:44: warning: too many arguments for format [-Wformat-extra-args]
58 | fail_unless(addr_cmp(&a, &b) != 0, "failed on different addr_type");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:60:43: warning: too many arguments for format [-Wformat-extra-args]
60 | fail_unless(addr_cmp(&a, &b) > 0, "failed on lesser addr_bits");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:62:44: warning: too many arguments for format [-Wformat-extra-args]
62 | fail_unless(addr_cmp(&a, &b) != 0, "failed on different addr_ip");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:66:43: warning: too many arguments for format [-Wformat-extra-args]
66 | fail_unless(addr_cmp(&a, &b) < 0, "failed on lesser addr compare");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:67:43: warning: too many arguments for format [-Wformat-extra-args]
67 | fail_unless(addr_cmp(&b, &a) > 0, "failed on greater addr compare");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c: In function 'test_addr_bcast_fn':
check_addr.c:77:53: warning: too many arguments for format [-Wformat-extra-args]
77 | fail_unless(b.addr_ip == htonl(0x01020307), "wrong for /29");
| ^~~~~~~~~~~~~~~
check_addr.c:79:53: warning: too many arguments for format [-Wformat-extra-args]
79 | fail_unless(b.addr_ip == htonl(0x0102ffff), "wrong for /16");
| ^~~~~~~~~~~~~~~
check_addr.c:81:52: warning: too many arguments for format [-Wformat-extra-args]
81 | fail_unless(b.addr_ip == htonl(0x7ffffff), "wrong for /5");
| ^~~~~~~~~~~~~~
check_addr.c: In function 'test_addr_net_fn':
check_addr.c:91:53: warning: too many arguments for format [-Wformat-extra-args]
91 | fail_unless(b.addr_ip == htonl(0x01020300), "wrong for /24");
| ^~~~~~~~~~~~~~~
check_addr.c:96:44: warning: too many arguments for format [-Wformat-extra-args]
96 | fail_unless(addr_cmp(&a, &b) == 0, "IPv6 net failed");
| ^~~~~~~~~~~~~~~~~
In file included from ../../include/dnet.h:16,
from check_addr.c:10:
check_addr.c: In function 'test_addr_ntop_fn':
../../include/dnet/ip6.h:161:9: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
161 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:161:9: note: in definition of macro 'IP6_ADDR_UNSPEC'
161 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:161:9: note: (near initialization for 'ntop_ip6[0].n')
161 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:161:9: note: in definition of macro 'IP6_ADDR_UNSPEC'
161 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:163:9: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
163 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:163:9: note: in definition of macro 'IP6_ADDR_LOOPBACK'
163 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:163:9: note: (near initialization for 'ntop_ip6[1].n')
163 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:163:9: note: in definition of macro 'IP6_ADDR_LOOPBACK'
163 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:108:19: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
108 | { "\xfe\x08\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:108:19: note: (near initialization for 'ntop_ip6[2].n')
check_addr.c:110:19: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
110 | { "\xff\xff\xff\xff\xff\xff\xff\xff"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:110:19: note: (near initialization for 'ntop_ip6[3].n')
check_addr.c:113:19: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
113 | { "\xca\xfe\xba\xbe\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:113:19: note: (near initialization for 'ntop_ip6[4].n')
check_addr.c:115:19: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
115 | { "\xfe\xed\xfa\xce\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:115:19: note: (near initialization for 'ntop_ip6[5].n')
check_addr.c:117:19: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
117 | { "\x00\x00\x00\x0a\x00\x0b\x00\x0c\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:117:19: note: (near initialization for 'ntop_ip6[6].n')
check_addr.c:119:19: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
119 | { "\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:119:19: note: (near initialization for 'ntop_ip6[7].n')
check_addr.c:128:55: warning: too many arguments for format [-Wformat-extra-args]
128 | fail_unless(strcmp(buf, "1.2.3.255/23") == 0, "bad /23 handling");
| ^~~~~~~~~~~~~~~~~~
check_addr.c:130:54: warning: too many arguments for format [-Wformat-extra-args]
130 | fail_unless(strcmp(buf, "1.2.3.255/0") == 0, "bad /0 handling");
| ^~~~~~~~~~~~~~~~~
check_addr.c:132:52: warning: too many arguments for format [-Wformat-extra-args]
132 | fail_unless(strcmp(buf, "1.2.3.255") == 0, "bad /32 handling");
| ^~~~~~~~~~~~~~~~~~
check_addr.c:133:52: warning: too many arguments for format [-Wformat-extra-args]
133 | fail_unless(addr_ntop(&a, buf, 9) == NULL, "buffer overflow?");
| ^~~~~~~~~~~~~~~~~~
check_addr.c:138:40: warning: too many arguments for format [-Wformat-extra-args]
138 | "00:00:00:00:00:00") == 0, "bad empty MAC handling");
| ^~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:141:40: warning: too many arguments for format [-Wformat-extra-args]
141 | "00:0d:0e:0a:0d:00") == 0, "b0rked");
| ^~~~~~~~
check_addr.c:143:62: warning: too many arguments for format [-Wformat-extra-args]
143 | fail_unless(addr_ntop(&a, buf, sizeof(buf)) == NULL, "took /16 mask");
| ^~~~~~~~~~~~~~~
check_addr.c: In function 'test_addr_pton_fn':
../../include/dnet/ip6.h:161:9: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
161 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:161:9: note: in definition of macro 'IP6_ADDR_UNSPEC'
161 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:161:9: note: (near initialization for 'pton_ip6[0].n')
161 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:161:9: note: in definition of macro 'IP6_ADDR_UNSPEC'
161 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:163:9: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
163 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:163:9: note: in definition of macro 'IP6_ADDR_LOOPBACK'
163 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:163:9: note: (near initialization for 'pton_ip6[1].n')
163 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/dnet/ip6.h:163:9: note: in definition of macro 'IP6_ADDR_LOOPBACK'
163 | "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:162:29: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
162 | { "fe08::", "\xfe\x08\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:162:29: note: (near initialization for 'pton_ip6[2].n')
check_addr.c:164:30: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
164 | { "fe08::1", "\xfe\x08\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:164:30: note: (near initialization for 'pton_ip6[3].n')
check_addr.c:166:62: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
166 | { "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "\xff\xff\xff\xff"
| ^~~~~~~~~~~~~~~~~~
check_addr.c:166:62: note: (near initialization for 'pton_ip6[4].n')
check_addr.c:168:50: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
168 | { "cafe::babe:dead:beef:0:ffff", "\xca\xfe\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:168:50: note: (near initialization for 'pton_ip6[5].n')
check_addr.c:170:32: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
170 | { "::1.2.3.4", "\x00\x00\x00\x00\x00\x00\x00\x00"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:170:32: note: (near initialization for 'pton_ip6[6].n')
check_addr.c:175:34: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
175 | { "0:d:e:a:d:0", "\x00\x0d\x0e\x0a\x0d\x00" },
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:175:34: note: (near initialization for 'pton_eth[0].n')
In file included from ../../include/dnet.h:14:
../../include/dnet/eth.h:53:33: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
53 | #define ETH_ADDR_BROADCAST "\xff\xff\xff\xff\xff\xff"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:176:40: note: in expansion of macro 'ETH_ADDR_BROADCAST'
176 | { "ff:ff:ff:ff:ff:ff", ETH_ADDR_BROADCAST },
| ^~~~~~~~~~~~~~~~~~
../../include/dnet/eth.h:53:33: note: (near initialization for 'pton_eth[1].n')
53 | #define ETH_ADDR_BROADCAST "\xff\xff\xff\xff\xff\xff"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:176:40: note: in expansion of macro 'ETH_ADDR_BROADCAST'
176 | { "ff:ff:ff:ff:ff:ff", ETH_ADDR_BROADCAST },
| ^~~~~~~~~~~~~~~~~~
check_addr.c:177:37: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
177 | { "00:d:0e:a:0d:0", "\x00\x0d\x0e\x0a\x0d\x00" },
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:177:37: note: (near initialization for 'pton_eth[2].n')
check_addr.c:180:34: warning: pointer targets in initialization of 'u_char *' {aka 'unsigned char *'} from 'char *' differ in signedness [-Wpointer-sign]
180 | { "0:0:0:0:0:0", "\x00\x00\x00\x00\x00\x00" },
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:180:34: note: (near initialization for 'pton_eth[7].n')
check_addr.c:188:44: warning: too many arguments for format [-Wformat-extra-args]
188 | fail_unless(addr_cmp(&a, &b) == 0, "bad /17 handling");
| ^~~~~~~~~~~~~~~~~~
check_addr.c:190:44: warning: too many arguments for format [-Wformat-extra-args]
190 | fail_unless(addr_cmp(&a, &b) == 0, "bad handling of missing /32");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:191:54: warning: too many arguments for format [-Wformat-extra-args]
191 | fail_unless(addr_pton("1.2.3.4/33", &b) < 0, "accepted /33");
| ^~~~~~~~~~~~~~
check_addr.c:192:53: warning: too many arguments for format [-Wformat-extra-args]
192 | fail_unless(addr_pton("1.2.3.256", &b) < 0, "accepted .256");
| ^~~~~~~~~~~~~~~
check_addr.c:193:53: warning: too many arguments for format [-Wformat-extra-args]
193 | fail_unless(addr_pton("1.2.3.4.5", &b) < 0, "accepted quint octet");
| ^~~~~~~~~~~~~~~~~~~~~~
check_addr.c:194:49: warning: too many arguments for format [-Wformat-extra-args]
194 | fail_unless(addr_pton("1.2.3", &b) < 0, "accepted triple octet");
| ^~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:195:53: warning: too many arguments for format [-Wformat-extra-args]
195 | fail_unless(addr_pton("localhost", &b) < 0, "barfed on localhost");
| ^~~~~~~~~~~~~~~~~~~~~
check_addr.c:197:13: warning: too many arguments for format [-Wformat-extra-args]
197 | "barfed on localhost/24");
| ^~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c:200:44: warning: too many arguments for format [-Wformat-extra-args]
200 | fail_unless(addr_cmp(&a, &b) == 0, "bad /255.255.255.0 handling");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c: In function 'test_addr_ntoa_fn':
check_addr.c:237:21: warning: too many arguments for format [-Wformat-extra-args]
237 | "barfed on 1.2.3.4 loop");
| ^~~~~~~~~~~~~~~~~~~~~~~~
check_addr.c: In function 'test_addr_ntos_fn':
check_addr.c:252:56: warning: too many arguments for format [-Wformat-extra-args]
252 | fail_unless(memcmp(&s1, &s2, sizeof(s1)) == 0, "bad sockaddr_in");
| ^~~~~~~~~~~~~~~~~
check_addr.c: In function 'test_addr_ston_fn':
check_addr.c:263:30: warning: argument to 'sizeof' in 'memcpy' call is the same expression as the destination; did you mean to remove the addressof? [-Wsizeof-pointer-memaccess]
263 | memcpy(&b, &a, sizeof(&b));
| ^
check_addr.c:265:30: warning: argument to 'sizeof' in 'memcpy' call is the same expression as the destination; did you mean to remove the addressof? [-Wsizeof-pointer-memaccess]
265 | memcpy(&t, &s, sizeof(&t));
| ^
check_addr.c:268:53: warning: too many arguments for format [-Wformat-extra-args]
268 | fail_unless(memcmp(&a, &b, sizeof(a)) == 0, "bad addr");
| ^~~~~~~~~~
check_addr.c:275:50: warning: too many arguments for format [-Wformat-extra-args]
275 | fail_unless(addr_ston((SA *)&s, &b) < 0, "sin_family == 123");
| ^~~~~~~~~~~~~~~~~~~
check_addr.c: In function 'test_addr_btos_fn':
check_addr.c:286:54: warning: too many arguments for format [-Wformat-extra-args]
286 | fail_unless(addr_btos(a.addr_bits, &s) == 0, "b0rked");
| ^~~~~~~~
check_addr.c: In function 'test_addr_stob_fn':
check_addr.c:297:40: warning: too many arguments for format [-Wformat-extra-args]
297 | fail_unless(a.addr_bits == 24, "b0rked");
| ^~~~~~~~
check_addr.c:301:32: warning: too many arguments for format [-Wformat-extra-args]
301 | a.addr_bits == 24, "sin_family = 0");
| ^~~~~~~~~~~~~~~~
check_addr.c: In function 'test_addr_btom_fn':
check_addr.c:313:48: warning: too many arguments for format [-Wformat-extra-args]
313 | fail_unless(mask == htonl(0xffffff00), "b0rked");
| ^~~~~~~~
check_addr.c: In function 'test_addr_mtob_fn':
check_addr.c:324:40: warning: too many arguments for format [-Wformat-extra-args]
324 | fail_unless(a.addr_bits == 24, "b0rked");
| ^~~~~~~~
In function 'memcpy',
inlined from 'test_blob_packunpack_fn' at check_blob.c:87:2:
/usr/include/bits/string_fortified.h:29:10: warning: '__builtin_memcpy' reading 6 bytes from a region of size 5 [-Wstringop-overread]
29 | return __builtin___memcpy_chk (__dest, __src, __len,
| ^
./dnet.c: In function ‘__pyx_f_4dnet_3eth_get’:
./dnet.c:584:49: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
584 | __pyx_2 = PyBytes_FromStringAndSize(__pyx_v_ea.data,6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
In file included from /usr/include/python3.8/Python.h:96,
from ./dnet.c:5:
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3eth_set’:
./dnet.c:616:46: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
616 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_ea.data,__pyx_v_value,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:401:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
401 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3eth___dealloc__’:
./dnet.c:694:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
694 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_eth_ntoa’:
./dnet.c:712:46: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
712 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_ea.data,__pyx_v_buf,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:401:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
401 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_eth_aton’:
./dnet.c:764:49: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
764 | __pyx_3 = PyBytes_FromStringAndSize(__pyx_v_ea.data,6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_eth_pack_hdr’:
./dnet.c:802:45: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
802 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_s.data,__pyx_v_src,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;}
| ~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:401:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
401 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c:806:45: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
806 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_d.data,__pyx_v_dst,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; goto __pyx_L1;}
| ~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:401:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
401 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_2ip___dealloc__’:
./dnet.c:919:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
919 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_ip_checksum’:
./dnet.c:1047:3: warning: ‘PyObject_AsReadBuffer’ is deprecated [-Wdeprecated-declarations]
1047 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_pkt,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ^~~~~~~
In file included from /usr/include/python3.8/Python.h:147:
/usr/include/python3.8/abstract.h:337:17: note: declared here
337 | PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
| ^~~~~~~~~~~~~~~~~~~~~
./dnet.c:1047:49: warning: passing argument 2 of ‘PyObject_AsReadBuffer’ from incompatible pointer type [-Wincompatible-pointer-types]
1047 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_pkt,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ~^~~~~~~~~~~
| |
| char **
/usr/include/python3.8/abstract.h:338:52: note: expected ‘const void **’ but argument is of type ‘char **’
338 | const void **buffer,
| ~~~~~~~~~~~~~^~~~~~
./dnet.c:1047:62: warning: passing argument 3 of ‘PyObject_AsReadBuffer’ from incompatible pointer type [-Wincompatible-pointer-types]
1047 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_pkt,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ~^~~~~~~~~~~
| |
| int *
/usr/include/python3.8/abstract.h:339:51: note: expected ‘Py_ssize_t *’ {aka ‘long int *’} but argument is of type ‘int *’
339 | Py_ssize_t *buffer_len);
| ~~~~~~~~~~~~^~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_ip_cksum_add’:
./dnet.c:1128:3: warning: ‘PyObject_AsReadBuffer’ is deprecated [-Wdeprecated-declarations]
1128 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_buf,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ^~~~~~~
/usr/include/python3.8/abstract.h:337:17: note: declared here
337 | PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
| ^~~~~~~~~~~~~~~~~~~~~
./dnet.c:1128:49: warning: passing argument 2 of ‘PyObject_AsReadBuffer’ from incompatible pointer type [-Wincompatible-pointer-types]
1128 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_buf,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ~^~~~~~~~~~~
| |
| char **
/usr/include/python3.8/abstract.h:338:52: note: expected ‘const void **’ but argument is of type ‘char **’
338 | const void **buffer,
| ~~~~~~~~~~~~~^~~~~~
./dnet.c:1128:62: warning: passing argument 3 of ‘PyObject_AsReadBuffer’ from incompatible pointer type [-Wincompatible-pointer-types]
1128 | __pyx_1 = (PyObject_AsReadBuffer(__pyx_v_buf,(&__pyx_v_p),(&__pyx_v_n)) == 0);
| ~^~~~~~~~~~~
| |
| int *
/usr/include/python3.8/abstract.h:339:51: note: expected ‘Py_ssize_t *’ {aka ‘long int *’} but argument is of type ‘int *’
339 | Py_ssize_t *buffer_len);
| ~~~~~~~~~~~~^~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr___init__’:
./dnet.c:1474:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1474 | if (__pyx_1=PyObject_RichCompareBool(__pyx_v_addrtxt, Py_None, Py_EQ) == 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 445; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_4data___get__’:
./dnet.c:1662:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1662 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:1677:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1677 | if (__pyx_3=PyObject_RichCompareBool(__pyx_2, __pyx_1, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:1692:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1692 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_3eth___get__’:
./dnet.c:1742:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1742 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2,Py_EQ ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; goto __pyx_L1;}
| ^~~~~~~
In file included from ../include/dnet.h:17,
from ./dnet.c:24:
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1758:92: note: in expansion of macro ‘addr_data8’
1758 | __pyx_2 = PyBytes_FromStringAndSize(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; goto __pyx_L1;}
| ^~~~~~~~~~
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_3eth___set__’:
./dnet.c:1792:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1792 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2,Py_EQ ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; goto __pyx_L1;}
| ^~~~~~~
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1808:89: note: in expansion of macro ‘addr_data8’
1808 | __pyx_2 = __pyx_f_4dnet___memcpy(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,__pyx_v_value,6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; goto __pyx_L1;}
| ^~~~~~~~~~
./dnet.c:401:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
401 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_2ip___get__’:
./dnet.c:1851:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1851 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; goto __pyx_L1;}
| ^~~~~~~
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1867:92: note: in expansion of macro ‘addr_data8’
1867 | __pyx_2 = PyBytes_FromStringAndSize(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;}
| ^~~~~~~~~~
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_2ip___set__’:
./dnet.c:1915:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1915 | if (__pyx_1 = PyObject_RichCompareBool(__pyx_2, __pyx_3, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; goto __pyx_L1;}
| ^~~~~~~
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1931:91: note: in expansion of macro ‘addr_data8’
1931 | __pyx_3 = __pyx_f_4dnet___memcpy(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,__pyx_v_value,4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;}
| ^~~~~~~~~~
./dnet.c:401:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
401 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_3ip6___get__’:
./dnet.c:1976:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
1976 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; goto __pyx_L1;}
| ^~~~~~~
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘PyBytes_FromStringAndSize’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:1992:92: note: in expansion of macro ‘addr_data8’
1992 | __pyx_2 = PyBytes_FromStringAndSize(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,16); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; goto __pyx_L1;}
| ^~~~~~~~~~
/usr/include/python3.8/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
| ^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr_3ip6___set__’:
./dnet.c:2026:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2026 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; goto __pyx_L1;}
| ^~~~~~~
../include/dnet/addr.h:35:33: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
35 | #define addr_data8 __addr_u.__data8
./dnet.c:2042:89: note: in expansion of macro ‘addr_data8’
2042 | __pyx_2 = __pyx_f_4dnet___memcpy(((struct __pyx_obj_4dnet_addr *)__pyx_v_self)->_addr.addr_data8,__pyx_v_value,16); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; goto __pyx_L1;}
| ^~~~~~~~~~
./dnet.c:401:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
401 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr___hash__’:
./dnet.c:2413:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2413 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:2423:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2423 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 579; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:2433:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2433 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:2467:3: warning: label ‘__pyx_L4’ defined but not used [-Wunused-label]
2467 | __pyx_L4:;
| ^~~~~~~~
./dnet.c:2465:5: warning: label ‘__pyx_L3’ defined but not used [-Wunused-label]
2465 | __pyx_L3:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr___int__’:
./dnet.c:2519:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2519 | if (__pyx_3=PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4addr___iter__’:
./dnet.c:2599:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
2599 | if (__pyx_1 = PyObject_RichCompareBool(__pyx_2, __pyx_3,Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3arp_loop’:
./dnet.c:3121:88: warning: passing argument 2 of ‘arp_loop’ from incompatible pointer type [-Wincompatible-pointer-types]
3121 | __pyx_1 = PyLong_FromLong(arp_loop(((struct __pyx_obj_4dnet_arp *)__pyx_v_self)->arp,__pyx_f_4dnet___arp_callback,((void (*))__pyx_v__arg))); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; goto __pyx_L1;}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct arp_entry *, void *)
In file included from ../include/dnet.h:18:
../include/dnet/arp.h:101:43: note: expected ‘arp_handler’ {aka ‘int (*)(const struct arp_entry *, void *)’} but argument is of type ‘int (*)(struct arp_entry *, void *)’
101 | int arp_loop(arp_t *arp, arp_handler callback, void *arg);
| ~~~~~~~~~~~~^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3arp___dealloc__’:
./dnet.c:3214:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
3214 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_arp_pack_hdr_ethip’:
./dnet.c:3250:46: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
3250 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_sh.data,__pyx_v_sha,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:401:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
401 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c:3254:46: warning: pointer targets in passing argument 1 of ‘__pyx_f_4dnet___memcpy’ differ in signedness [-Wpointer-sign]
3254 | __pyx_1 = __pyx_f_4dnet___memcpy(__pyx_v_dh.data,__pyx_v_dha,6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; goto __pyx_L1;}
| ~~~~~~~~~~^~~~~
| |
| uint8_t * {aka unsigned char *}
./dnet.c:401:48: note: expected ‘char *’ but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
401 | static PyObject *__pyx_f_4dnet___memcpy(char (*__pyx_v_dst),PyObject *__pyx_v_src,int __pyx_v_n) {
| ~~~~~~~^~~~~~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_ifent_to_dict’:
./dnet.c:3495:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
3495 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 931; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:3517:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
3517 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_2, __pyx_1, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:3539:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
3539 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_2, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:3594:5: warning: label ‘__pyx_L7’ defined but not used [-Wunused-label]
3594 | __pyx_L7:;
| ^~~~~~~~
./dnet.c:3592:7: warning: label ‘__pyx_L6’ defined but not used [-Wunused-label]
3592 | __pyx_L6:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_dict_to_ifent’:
./dnet.c:3748:5: warning: label ‘__pyx_L9’ defined but not used [-Wunused-label]
3748 | __pyx_L9:;
| ^~~~~~~~
./dnet.c:3746:7: warning: label ‘__pyx_L8’ defined but not used [-Wunused-label]
3746 | __pyx_L8:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4intf_loop’:
./dnet.c:4138:91: warning: passing argument 2 of ‘intf_loop’ from incompatible pointer type [-Wincompatible-pointer-types]
4138 | __pyx_1 = PyLong_FromLong(intf_loop(((struct __pyx_obj_4dnet_intf *)__pyx_v_self)->intf,__pyx_f_4dnet___intf_callback,((void (*))__pyx_v__arg))); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; goto __pyx_L1;}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct intf_entry *, void *)
In file included from ../include/dnet.h:25:
../include/dnet/intf.h:64:44: note: expected ‘intf_handler’ {aka ‘int (*)(const struct intf_entry *, void *)’} but argument is of type ‘int (*)(struct intf_entry *, void *)’
64 | int intf_loop(intf_t *i, intf_handler callback, void *arg);
| ~~~~~~~~~~~~~^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4intf___dealloc__’:
./dnet.c:4228:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
4228 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_5route_loop’:
./dnet.c:4559:94: warning: passing argument 2 of ‘route_loop’ from incompatible pointer type [-Wincompatible-pointer-types]
4559 | __pyx_1 = PyLong_FromLong(route_loop(((struct __pyx_obj_4dnet_route *)__pyx_v_self)->route,__pyx_f_4dnet___route_callback,((void (*))__pyx_v__arg))); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; goto __pyx_L1;}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct route_entry *, void *)
In file included from ../include/dnet.h:26:
../include/dnet/route.h:34:47: note: expected ‘route_handler’ {aka ‘int (*)(const struct route_entry *, void *)’} but argument is of type ‘int (*)(struct route_entry *, void *)’
34 | int route_loop(route_t *r, route_handler callback, void *arg);
| ~~~~~~~~~~~~~~^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_5route___dealloc__’:
./dnet.c:4649:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
4649 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_rule_to_dict’:
./dnet.c:4711:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
4711 | if (__pyx_2 = PyObject_RichCompareBool(__pyx_1, __pyx_3, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:4733:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
4733 | if (__pyx_2 = PyObject_RichCompareBool(__pyx_3, __pyx_1, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_dict_to_rule’:
./dnet.c:4861:9: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
4861 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_4, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1213; goto __pyx_L1;}
| ^~~~~~~
./dnet.c:4868:11: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
4868 | if (__pyx_3 = PyObject_RichCompareBool(__pyx_1, __pyx_4, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1213; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_2fw_loop’:
./dnet.c:5219:85: warning: passing argument 2 of ‘fw_loop’ from incompatible pointer type [-Wincompatible-pointer-types]
5219 | __pyx_1 = PyLong_FromLong(fw_loop(((struct __pyx_obj_4dnet_fw *)__pyx_v_self)->fw,__pyx_f_4dnet___fw_callback,((void (*))__pyx_v__arg))); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; goto __pyx_L1;}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct fw_rule *, void *)
In file included from ../include/dnet.h:27:
../include/dnet/fw.h:50:38: note: expected ‘fw_handler’ {aka ‘int (*)(const struct fw_rule *, void *)’} but argument is of type ‘int (*)(struct fw_rule *, void *)’
50 | int fw_loop(fw_t *f, fw_handler callback, void *arg);
| ~~~~~~~~~~~^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_2fw___dealloc__’:
./dnet.c:5309:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
5309 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4rand_get’:
./dnet.c:5373:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
5373 | if (__pyx_2 = PyObject_RichCompareBool(__pyx_v_len, __pyx_1, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4rand_xrange’:
./dnet.c:5575:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
5575 | if (__pyx_1 = PyObject_RichCompareBool(__pyx_v_stop, Py_None, Py_EQ) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1377; goto __pyx_L1;}
| ^~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_4rand___dealloc__’:
./dnet.c:5643:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
5643 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_13__rand_xrange___init__’:
./dnet.c:5739:3: warning: label ‘__pyx_L5’ defined but not used [-Wunused-label]
5739 | __pyx_L5:;
| ^~~~~~~~
./dnet.c:5732:5: warning: label ‘__pyx_L4’ defined but not used [-Wunused-label]
5732 | __pyx_L4:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_13__rand_xrange___iter__’:
./dnet.c:5801:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
5801 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_13__rand_xrange___len__’:
./dnet.c:5820:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
5820 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_13__rand_xrange___next__’:
./dnet.c:5893:5: warning: label ‘__pyx_L6’ defined but not used [-Wunused-label]
5893 | __pyx_L6:;
| ^~~~~~~~
./dnet.c:5891:7: warning: label ‘__pyx_L5’ defined but not used [-Wunused-label]
5891 | __pyx_L5:;
| ^~~~~~~~
./dnet.c:5857:5: warning: label ‘__pyx_L3’ defined but not used [-Wunused-label]
5857 | __pyx_L3:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3tun_close’:
./dnet.c:6149:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
6149 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_f_4dnet_3tun___dealloc__’:
./dnet.c:6183:3: warning: label ‘__pyx_L1’ defined but not used [-Wunused-label]
6183 | __pyx_L1:;
| ^~~~~~~~
./dnet.c: In function ‘__pyx_tp_new_4dnet_eth’:
./dnet.c:6405:31: warning: unused variable ‘p’ [-Wunused-variable]
6405 | struct __pyx_obj_4dnet_eth *p = (struct __pyx_obj_4dnet_eth *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_eth’:
./dnet.c:6410:31: warning: unused variable ‘p’ [-Wunused-variable]
6410 | struct __pyx_obj_4dnet_eth *p = (struct __pyx_obj_4dnet_eth *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_eth’:
./dnet.c:6425:31: warning: unused variable ‘p’ [-Wunused-variable]
6425 | struct __pyx_obj_4dnet_eth *p = (struct __pyx_obj_4dnet_eth *)o;
| ^
./dnet.c:6424:7: warning: unused variable ‘e’ [-Wunused-variable]
6424 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_eth’:
./dnet.c:6430:31: warning: unused variable ‘p’ [-Wunused-variable]
6430 | struct __pyx_obj_4dnet_eth *p = (struct __pyx_obj_4dnet_eth *)o;
| ^
./dnet.c: At top level:
./dnet.c:6478:3: warning: excess elements in struct initializer
6478 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:6478:3: note: (near initialization for ‘__pyx_tp_as_number_eth’)
./dnet.c:6479:3: warning: excess elements in struct initializer
6479 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:6479:3: note: (near initialization for ‘__pyx_tp_as_number_eth’)
./dnet.c:6504:3: warning: excess elements in struct initializer
6504 | 0, /*bf_getsegcount*/
| ^
./dnet.c:6504:3: note: (near initialization for ‘__pyx_tp_as_buffer_eth’)
./dnet.c:6505:3: warning: excess elements in struct initializer
6505 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:6505:3: note: (near initialization for ‘__pyx_tp_as_buffer_eth’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_ip’:
./dnet.c:6558:30: warning: unused variable ‘p’ [-Wunused-variable]
6558 | struct __pyx_obj_4dnet_ip *p = (struct __pyx_obj_4dnet_ip *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_ip’:
./dnet.c:6563:30: warning: unused variable ‘p’ [-Wunused-variable]
6563 | struct __pyx_obj_4dnet_ip *p = (struct __pyx_obj_4dnet_ip *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_ip’:
./dnet.c:6578:30: warning: unused variable ‘p’ [-Wunused-variable]
6578 | struct __pyx_obj_4dnet_ip *p = (struct __pyx_obj_4dnet_ip *)o;
| ^
./dnet.c:6577:7: warning: unused variable ‘e’ [-Wunused-variable]
6577 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_ip’:
./dnet.c:6583:30: warning: unused variable ‘p’ [-Wunused-variable]
6583 | struct __pyx_obj_4dnet_ip *p = (struct __pyx_obj_4dnet_ip *)o;
| ^
./dnet.c: At top level:
./dnet.c:6629:3: warning: excess elements in struct initializer
6629 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:6629:3: note: (near initialization for ‘__pyx_tp_as_number_ip’)
./dnet.c:6630:3: warning: excess elements in struct initializer
6630 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:6630:3: note: (near initialization for ‘__pyx_tp_as_number_ip’)
./dnet.c:6655:3: warning: excess elements in struct initializer
6655 | 0, /*bf_getsegcount*/
| ^
./dnet.c:6655:3: note: (near initialization for ‘__pyx_tp_as_buffer_ip’)
./dnet.c:6656:3: warning: excess elements in struct initializer
6656 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:6656:3: note: (near initialization for ‘__pyx_tp_as_buffer_ip’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_addr’:
./dnet.c:6709:32: warning: unused variable ‘p’ [-Wunused-variable]
6709 | struct __pyx_obj_4dnet_addr *p = (struct __pyx_obj_4dnet_addr *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_addr’:
./dnet.c:6714:32: warning: unused variable ‘p’ [-Wunused-variable]
6714 | struct __pyx_obj_4dnet_addr *p = (struct __pyx_obj_4dnet_addr *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_addr’:
./dnet.c:6720:32: warning: unused variable ‘p’ [-Wunused-variable]
6720 | struct __pyx_obj_4dnet_addr *p = (struct __pyx_obj_4dnet_addr *)o;
| ^
./dnet.c:6719:7: warning: unused variable ‘e’ [-Wunused-variable]
6719 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_addr’:
./dnet.c:6725:32: warning: unused variable ‘p’ [-Wunused-variable]
6725 | struct __pyx_obj_4dnet_addr *p = (struct __pyx_obj_4dnet_addr *)o;
| ^
./dnet.c: At top level:
./dnet.c:6840:3: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} [-Wincompatible-pointer-types]
6840 | __pyx_f_4dnet_4addr___long__, /*nb_long*/
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./dnet.c:6840:3: note: (near initialization for ‘__pyx_tp_as_number_addr.nb_inplace_add’)
./dnet.c:6857:3: warning: excess elements in struct initializer
6857 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:6857:3: note: (near initialization for ‘__pyx_tp_as_number_addr’)
./dnet.c:6858:3: warning: excess elements in struct initializer
6858 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:6858:3: note: (near initialization for ‘__pyx_tp_as_number_addr’)
./dnet.c:6883:3: warning: excess elements in struct initializer
6883 | 0, /*bf_getsegcount*/
| ^
./dnet.c:6883:3: note: (near initialization for ‘__pyx_tp_as_buffer_addr’)
./dnet.c:6884:3: warning: excess elements in struct initializer
6884 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:6884:3: note: (near initialization for ‘__pyx_tp_as_buffer_addr’)
./dnet.c:6896:3: warning: initialization of ‘PyAsyncMethods *’ from incompatible pointer type ‘int (*)(PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
6896 | __pyx_f_4dnet_4addr___cmp__, /*tp_compare*/
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./dnet.c:6896:3: note: (near initialization for ‘__pyx_type_4dnet_addr.tp_as_async’)
./dnet.c: In function ‘__pyx_tp_new_4dnet___addr_ip4_iter’:
./dnet.c:6937:43: warning: unused variable ‘p’ [-Wunused-variable]
6937 | struct __pyx_obj_4dnet___addr_ip4_iter *p = (struct __pyx_obj_4dnet___addr_ip4_iter *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet___addr_ip4_iter’:
./dnet.c:6942:43: warning: unused variable ‘p’ [-Wunused-variable]
6942 | struct __pyx_obj_4dnet___addr_ip4_iter *p = (struct __pyx_obj_4dnet___addr_ip4_iter *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet___addr_ip4_iter’:
./dnet.c:6948:43: warning: unused variable ‘p’ [-Wunused-variable]
6948 | struct __pyx_obj_4dnet___addr_ip4_iter *p = (struct __pyx_obj_4dnet___addr_ip4_iter *)o;
| ^
./dnet.c:6947:7: warning: unused variable ‘e’ [-Wunused-variable]
6947 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet___addr_ip4_iter’:
./dnet.c:6953:43: warning: unused variable ‘p’ [-Wunused-variable]
6953 | struct __pyx_obj_4dnet___addr_ip4_iter *p = (struct __pyx_obj_4dnet___addr_ip4_iter *)o;
| ^
./dnet.c: At top level:
./dnet.c:6998:3: warning: excess elements in struct initializer
6998 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:6998:3: note: (near initialization for ‘__pyx_tp_as_number___addr_ip4_iter’)
./dnet.c:6999:3: warning: excess elements in struct initializer
6999 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:6999:3: note: (near initialization for ‘__pyx_tp_as_number___addr_ip4_iter’)
./dnet.c:7024:3: warning: excess elements in struct initializer
7024 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7024:3: note: (near initialization for ‘__pyx_tp_as_buffer___addr_ip4_iter’)
./dnet.c:7025:3: warning: excess elements in struct initializer
7025 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7025:3: note: (near initialization for ‘__pyx_tp_as_buffer___addr_ip4_iter’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_arp’:
./dnet.c:7078:31: warning: unused variable ‘p’ [-Wunused-variable]
7078 | struct __pyx_obj_4dnet_arp *p = (struct __pyx_obj_4dnet_arp *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_arp’:
./dnet.c:7083:31: warning: unused variable ‘p’ [-Wunused-variable]
7083 | struct __pyx_obj_4dnet_arp *p = (struct __pyx_obj_4dnet_arp *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_arp’:
./dnet.c:7098:31: warning: unused variable ‘p’ [-Wunused-variable]
7098 | struct __pyx_obj_4dnet_arp *p = (struct __pyx_obj_4dnet_arp *)o;
| ^
./dnet.c:7097:7: warning: unused variable ‘e’ [-Wunused-variable]
7097 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_arp’:
./dnet.c:7103:31: warning: unused variable ‘p’ [-Wunused-variable]
7103 | struct __pyx_obj_4dnet_arp *p = (struct __pyx_obj_4dnet_arp *)o;
| ^
./dnet.c: At top level:
./dnet.c:7152:3: warning: excess elements in struct initializer
7152 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7152:3: note: (near initialization for ‘__pyx_tp_as_number_arp’)
./dnet.c:7153:3: warning: excess elements in struct initializer
7153 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7153:3: note: (near initialization for ‘__pyx_tp_as_number_arp’)
./dnet.c:7178:3: warning: excess elements in struct initializer
7178 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7178:3: note: (near initialization for ‘__pyx_tp_as_buffer_arp’)
./dnet.c:7179:3: warning: excess elements in struct initializer
7179 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7179:3: note: (near initialization for ‘__pyx_tp_as_buffer_arp’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_intf’:
./dnet.c:7232:32: warning: unused variable ‘p’ [-Wunused-variable]
7232 | struct __pyx_obj_4dnet_intf *p = (struct __pyx_obj_4dnet_intf *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_intf’:
./dnet.c:7237:32: warning: unused variable ‘p’ [-Wunused-variable]
7237 | struct __pyx_obj_4dnet_intf *p = (struct __pyx_obj_4dnet_intf *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_intf’:
./dnet.c:7252:32: warning: unused variable ‘p’ [-Wunused-variable]
7252 | struct __pyx_obj_4dnet_intf *p = (struct __pyx_obj_4dnet_intf *)o;
| ^
./dnet.c:7251:7: warning: unused variable ‘e’ [-Wunused-variable]
7251 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_intf’:
./dnet.c:7257:32: warning: unused variable ‘p’ [-Wunused-variable]
7257 | struct __pyx_obj_4dnet_intf *p = (struct __pyx_obj_4dnet_intf *)o;
| ^
./dnet.c: At top level:
./dnet.c:7307:3: warning: excess elements in struct initializer
7307 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7307:3: note: (near initialization for ‘__pyx_tp_as_number_intf’)
./dnet.c:7308:3: warning: excess elements in struct initializer
7308 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7308:3: note: (near initialization for ‘__pyx_tp_as_number_intf’)
./dnet.c:7333:3: warning: excess elements in struct initializer
7333 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7333:3: note: (near initialization for ‘__pyx_tp_as_buffer_intf’)
./dnet.c:7334:3: warning: excess elements in struct initializer
7334 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7334:3: note: (near initialization for ‘__pyx_tp_as_buffer_intf’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_route’:
./dnet.c:7387:33: warning: unused variable ‘p’ [-Wunused-variable]
7387 | struct __pyx_obj_4dnet_route *p = (struct __pyx_obj_4dnet_route *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_route’:
./dnet.c:7392:33: warning: unused variable ‘p’ [-Wunused-variable]
7392 | struct __pyx_obj_4dnet_route *p = (struct __pyx_obj_4dnet_route *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_route’:
./dnet.c:7407:33: warning: unused variable ‘p’ [-Wunused-variable]
7407 | struct __pyx_obj_4dnet_route *p = (struct __pyx_obj_4dnet_route *)o;
| ^
./dnet.c:7406:7: warning: unused variable ‘e’ [-Wunused-variable]
7406 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_route’:
./dnet.c:7412:33: warning: unused variable ‘p’ [-Wunused-variable]
7412 | struct __pyx_obj_4dnet_route *p = (struct __pyx_obj_4dnet_route *)o;
| ^
./dnet.c: At top level:
./dnet.c:7461:3: warning: excess elements in struct initializer
7461 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7461:3: note: (near initialization for ‘__pyx_tp_as_number_route’)
./dnet.c:7462:3: warning: excess elements in struct initializer
7462 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7462:3: note: (near initialization for ‘__pyx_tp_as_number_route’)
./dnet.c:7487:3: warning: excess elements in struct initializer
7487 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7487:3: note: (near initialization for ‘__pyx_tp_as_buffer_route’)
./dnet.c:7488:3: warning: excess elements in struct initializer
7488 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7488:3: note: (near initialization for ‘__pyx_tp_as_buffer_route’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_fw’:
./dnet.c:7541:30: warning: unused variable ‘p’ [-Wunused-variable]
7541 | struct __pyx_obj_4dnet_fw *p = (struct __pyx_obj_4dnet_fw *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_fw’:
./dnet.c:7546:30: warning: unused variable ‘p’ [-Wunused-variable]
7546 | struct __pyx_obj_4dnet_fw *p = (struct __pyx_obj_4dnet_fw *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_fw’:
./dnet.c:7561:30: warning: unused variable ‘p’ [-Wunused-variable]
7561 | struct __pyx_obj_4dnet_fw *p = (struct __pyx_obj_4dnet_fw *)o;
| ^
./dnet.c:7560:7: warning: unused variable ‘e’ [-Wunused-variable]
7560 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_fw’:
./dnet.c:7566:30: warning: unused variable ‘p’ [-Wunused-variable]
7566 | struct __pyx_obj_4dnet_fw *p = (struct __pyx_obj_4dnet_fw *)o;
| ^
./dnet.c: At top level:
./dnet.c:7614:3: warning: excess elements in struct initializer
7614 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7614:3: note: (near initialization for ‘__pyx_tp_as_number_fw’)
./dnet.c:7615:3: warning: excess elements in struct initializer
7615 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7615:3: note: (near initialization for ‘__pyx_tp_as_number_fw’)
./dnet.c:7640:3: warning: excess elements in struct initializer
7640 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7640:3: note: (near initialization for ‘__pyx_tp_as_buffer_fw’)
./dnet.c:7641:3: warning: excess elements in struct initializer
7641 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7641:3: note: (near initialization for ‘__pyx_tp_as_buffer_fw’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_rand’:
./dnet.c:7694:32: warning: unused variable ‘p’ [-Wunused-variable]
7694 | struct __pyx_obj_4dnet_rand *p = (struct __pyx_obj_4dnet_rand *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_rand’:
./dnet.c:7699:32: warning: unused variable ‘p’ [-Wunused-variable]
7699 | struct __pyx_obj_4dnet_rand *p = (struct __pyx_obj_4dnet_rand *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_rand’:
./dnet.c:7714:32: warning: unused variable ‘p’ [-Wunused-variable]
7714 | struct __pyx_obj_4dnet_rand *p = (struct __pyx_obj_4dnet_rand *)o;
| ^
./dnet.c:7713:7: warning: unused variable ‘e’ [-Wunused-variable]
7713 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_rand’:
./dnet.c:7719:32: warning: unused variable ‘p’ [-Wunused-variable]
7719 | struct __pyx_obj_4dnet_rand *p = (struct __pyx_obj_4dnet_rand *)o;
| ^
./dnet.c: At top level:
./dnet.c:7771:3: warning: excess elements in struct initializer
7771 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7771:3: note: (near initialization for ‘__pyx_tp_as_number_rand’)
./dnet.c:7772:3: warning: excess elements in struct initializer
7772 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7772:3: note: (near initialization for ‘__pyx_tp_as_number_rand’)
./dnet.c:7797:3: warning: excess elements in struct initializer
7797 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7797:3: note: (near initialization for ‘__pyx_tp_as_buffer_rand’)
./dnet.c:7798:3: warning: excess elements in struct initializer
7798 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7798:3: note: (near initialization for ‘__pyx_tp_as_buffer_rand’)
./dnet.c: In function ‘__pyx_tp_new_4dnet___rand_xrange’:
./dnet.c:7851:41: warning: unused variable ‘p’ [-Wunused-variable]
7851 | struct __pyx_obj_4dnet___rand_xrange *p = (struct __pyx_obj_4dnet___rand_xrange *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet___rand_xrange’:
./dnet.c:7856:41: warning: unused variable ‘p’ [-Wunused-variable]
7856 | struct __pyx_obj_4dnet___rand_xrange *p = (struct __pyx_obj_4dnet___rand_xrange *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet___rand_xrange’:
./dnet.c:7862:41: warning: unused variable ‘p’ [-Wunused-variable]
7862 | struct __pyx_obj_4dnet___rand_xrange *p = (struct __pyx_obj_4dnet___rand_xrange *)o;
| ^
./dnet.c:7861:7: warning: unused variable ‘e’ [-Wunused-variable]
7861 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet___rand_xrange’:
./dnet.c:7867:41: warning: unused variable ‘p’ [-Wunused-variable]
7867 | struct __pyx_obj_4dnet___rand_xrange *p = (struct __pyx_obj_4dnet___rand_xrange *)o;
| ^
./dnet.c: At top level:
./dnet.c:7912:3: warning: excess elements in struct initializer
7912 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:7912:3: note: (near initialization for ‘__pyx_tp_as_number___rand_xrange’)
./dnet.c:7913:3: warning: excess elements in struct initializer
7913 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:7913:3: note: (near initialization for ‘__pyx_tp_as_number___rand_xrange’)
./dnet.c:7938:3: warning: excess elements in struct initializer
7938 | 0, /*bf_getsegcount*/
| ^
./dnet.c:7938:3: note: (near initialization for ‘__pyx_tp_as_buffer___rand_xrange’)
./dnet.c:7939:3: warning: excess elements in struct initializer
7939 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:7939:3: note: (near initialization for ‘__pyx_tp_as_buffer___rand_xrange’)
./dnet.c: In function ‘__pyx_tp_new_4dnet_tun’:
./dnet.c:7992:31: warning: unused variable ‘p’ [-Wunused-variable]
7992 | struct __pyx_obj_4dnet_tun *p = (struct __pyx_obj_4dnet_tun *)o;
| ^
./dnet.c: In function ‘__pyx_tp_dealloc_4dnet_tun’:
./dnet.c:7997:31: warning: unused variable ‘p’ [-Wunused-variable]
7997 | struct __pyx_obj_4dnet_tun *p = (struct __pyx_obj_4dnet_tun *)o;
| ^
./dnet.c: In function ‘__pyx_tp_traverse_4dnet_tun’:
./dnet.c:8012:31: warning: unused variable ‘p’ [-Wunused-variable]
8012 | struct __pyx_obj_4dnet_tun *p = (struct __pyx_obj_4dnet_tun *)o;
| ^
./dnet.c:8011:7: warning: unused variable ‘e’ [-Wunused-variable]
8011 | int e;
| ^
./dnet.c: In function ‘__pyx_tp_clear_4dnet_tun’:
./dnet.c:8017:31: warning: unused variable ‘p’ [-Wunused-variable]
8017 | struct __pyx_obj_4dnet_tun *p = (struct __pyx_obj_4dnet_tun *)o;
| ^
./dnet.c: At top level:
./dnet.c:8080:3: warning: excess elements in struct initializer
8080 | 0, /*nb_inplace_floor_divide*/
| ^
./dnet.c:8080:3: note: (near initialization for ‘__pyx_tp_as_number_tun’)
./dnet.c:8081:3: warning: excess elements in struct initializer
8081 | 0, /*nb_inplace_true_divide*/
| ^
./dnet.c:8081:3: note: (near initialization for ‘__pyx_tp_as_number_tun’)
./dnet.c:8106:3: warning: excess elements in struct initializer
8106 | 0, /*bf_getsegcount*/
| ^
./dnet.c:8106:3: note: (near initialization for ‘__pyx_tp_as_buffer_tun’)
./dnet.c:8107:3: warning: excess elements in struct initializer
8107 | 0, /*bf_getcharbuffer*/
| ^
./dnet.c:8107:3: note: (near initialization for ‘__pyx_tp_as_buffer_tun’)
./dnet.c: In function ‘__Pyx_EndUnpack’:
./dnet.c:9276:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
9276 | if (item = PySequence_GetItem(seq, i)) {
| ^~~~
./dnet.c: At top level:
./dnet.c:33:12: warning: ‘__Pyx_PrintItem’ declared ‘static’ but never defined [-Wunused-function]
33 | static int __Pyx_PrintItem(PyObject *); /*proto*/
| ^~~~~~~~~~~~~~~
./dnet.c:34:12: warning: ‘__Pyx_PrintNewline’ declared ‘static’ but never defined [-Wunused-function]
34 | static int __Pyx_PrintNewline(void); /*proto*/
| ^~~~~~~~~~~~~~~~~~
./dnet.c:36:13: warning: ‘__Pyx_ReRaise’ declared ‘static’ but never defined [-Wunused-function]
36 | static void __Pyx_ReRaise(void); /*proto*/
| ^~~~~~~~~~~~~
./dnet.c:37:18: warning: ‘__Pyx_Import’ declared ‘static’ but never defined [-Wunused-function]
37 | static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
| ^~~~~~~~~~~~
./dnet.c:38:18: warning: ‘__Pyx_GetExcValue’ declared ‘static’ but never defined [-Wunused-function]
38 | static PyObject *__Pyx_GetExcValue(void); /*proto*/
| ^~~~~~~~~~~~~~~~~
./dnet.c:41:12: warning: ‘__Pyx_GetStarArgs’ declared ‘static’ but never defined [-Wunused-function]
41 | static int __Pyx_GetStarArgs(PyObject **args, PyObject **kwds, char *kwd_list[], Py_ssize_t nargs, PyObject **args2, PyObject **kwds2); /*proto*/
| ^~~~~~~~~~~~~~~~~
./dnet.c:42:13: warning: ‘__Pyx_WriteUnraisable’ declared ‘static’ but never defined [-Wunused-function]
42 | static void __Pyx_WriteUnraisable(char *name); /*proto*/
| ^~~~~~~~~~~~~~~~~~~~~
./dnet.c:44:22: warning: ‘__Pyx_ImportType’ declared ‘static’ but never defined [-Wunused-function]
44 | static PyTypeObject *__Pyx_ImportType(char *module_name, char *class_name, long size); /*proto*/
| ^~~~~~~~~~~~~~~~
./dnet.c:45:12: warning: ‘__Pyx_SetVtable’ declared ‘static’ but never defined [-Wunused-function]
45 | static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
| ^~~~~~~~~~~~~~~
./dnet.c:46:12: warning: ‘__Pyx_GetVtable’ declared ‘static’ but never defined [-Wunused-function]
46 | static int __Pyx_GetVtable(PyObject *dict, void *vtabptr); /*proto*/
| ^~~~~~~~~~~~~~~
./dnet.c:47:18: warning: ‘__Pyx_CreateClass’ declared ‘static’ but never defined [-Wunused-function]
47 | static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name, char *modname); /*proto*/
| ^~~~~~~~~~~~~~~~~
./dnet.c:50:12: warning: ‘__Pyx_InitCApi’ declared ‘static’ but never defined [-Wunused-function]
50 | static int __Pyx_InitCApi(PyObject *module); /*proto*/
| ^~~~~~~~~~~~~~
./dnet.c:51:12: warning: ‘__Pyx_ImportModuleCApi’ declared ‘static’ but never defined [-Wunused-function]
51 | static int __Pyx_ImportModuleCApi(__Pyx_CApiTabEntry *t); /*proto*/
| ^~~~~~~~~~~~~~~~~~~~~~
../include/config.h:298:5: warning: type of ‘strlcpy’ does not match original declaration [-Wlto-type-mismatch]
298 | int strlcpy(char *, const char *, int);
| ^
../src/strlcpy.c:43:1: note: return value type mismatch
43 | strlcpy(dst, src, siz)
| ^
../src/strlcpy.c:43:1: note: type ‘size_t’ should match type ‘int’
../src/strlcpy.c:43:1: note: ‘strlcpy’ was previously declared here
../src/strlcpy.c:43:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
Will try to help you with autoconf warnings so you can skipp that part 😄
BTW looks like version in configure.ac has not been updated 😃 https://github.com/ofalk/libdnet/blob/5906d359a179f5d484eb2f77b53bd4b6bf8b0566/configure.ac#L9
Oh crap. monday--
If you could look at the autoconf (beast), that would be awesome!
When sending an MR, please against devel branch. And if I find some time, I'll also look into the issue (again).
I'll try to make few MRs because I see it is much more to clean in ac/am/lt stuff. With few MRs you will have better visibilito what is the propose of exact changes and aprove/reject/discuss in one chunk 😄 I'm not sure but probably it would be good to make next release with corrected version and than we will continue.
Perfect!
I've now added 1.16.1 release: https://github.com/ofalk/libdnet/releases/tag/libdnet-1.16.1
@kloczek do you think you have time to look into this again?
Latest run against the default branch:
# rpmbuild -ba --with check libdnet.spec --quiet 2>&1 | grep -- -W | sed 's/.*\[//; s/\]//' | sort | uniq -c | sort -nr
34 -Wpointer-sign
8 -Wincompatible-pointer-types
2 -Wsizeof-pointer-memaccess
1 -Wunused-variable
1 -Wunused-result
1 -Wunused-function
1 -Wstringop-overflow=
1 -Wmaybe-uninitialized
1 -Wimplicit-function-declaration
1 -Warray-bounds
Since this issue was about LTO, I consider this closed. Thanks again for reporting it @kloczek !
Thx.
At least -Wstringop-overflow=
would be good to fix as well 😋
And -Wunused-variable
, -Wunused-function
are trivial as well 😄
Agree with you @kloczek - it's not like I don't want to address these as well, but not as part of this issue. :-)
Thx for the clarification👍 😄