Skip to content

Commit d54ee91

Browse files
authored
Merge pull request #217 from tornaria/warnings
Fix warnings (C and cython)
2 parents 3cf5e38 + 6fd403c commit d54ee91

File tree

9 files changed

+29
-23
lines changed

9 files changed

+29
-23
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ jobs:
3939
pip install --upgrade -r requirements.txt
4040
pip install --upgrade ninja
4141
- name: Build
42-
run: pip install --no-build-isolation --config-settings=builddir=builddir .
42+
run: pip install -v --no-build-isolation --config-settings=builddir=builddir .
4343
- name: Test
4444
run: meson test --print-errorlogs -C builddir

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
project('cysignals', 'c', 'cpp', 'cython',
2-
default_options: ['warning_level=3', 'cpp_std=c++17']
2+
default_options: ['warning_level=2', 'cpp_std=c++17']
33
)
44

55
# Python

src/cysignals/alarm.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def cancel_alarm():
8080
setitimer_real(0)
8181

8282

83-
cdef inline void setitimer_real(double x):
83+
cdef inline void setitimer_real(double x) noexcept:
8484
cdef itimerval itv
8585
itv.it_interval.tv_sec = 0
8686
itv.it_interval.tv_usec = 0

src/cysignals/implementation.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ static void cysigs_signal_handler(int sig)
492492
* fact, POSIX recommends threads in
493493
* http://pubs.opengroup.org/onlinepubs/009695299/functions/makecontext.html
494494
*/
495-
static void* _sig_on_trampoline(void* dummy)
495+
static void* _sig_on_trampoline(CYTHON_UNUSED void* dummy)
496496
{
497497
register int sig;
498498

@@ -523,7 +523,7 @@ static void setup_trampoline(void)
523523
size_t trampolinestacksize = 1 << 17;
524524

525525
#ifdef PTHREAD_STACK_MIN
526-
if (trampolinestacksize < PTHREAD_STACK_MIN)
526+
if (trampolinestacksize < (size_t) PTHREAD_STACK_MIN)
527527
trampolinestacksize = PTHREAD_STACK_MIN;
528528
#endif
529529
trampolinestack = malloc(trampolinestacksize + 4096);

src/cysignals/macros.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ extern "C" {
112112
/*
113113
* Set message, return 0 if we need to cysetjmp(), return 1 otherwise.
114114
*/
115-
static inline int _sig_on_prejmp(const char* message, const char* file, int line)
115+
static inline int _sig_on_prejmp(const char* message, CYTHON_UNUSED const char* file, CYTHON_UNUSED int line)
116116
{
117117
cysigs.s = message;
118118
#if ENABLE_DEBUG_CYSIGNALS

src/cysignals/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ foreach name, pyx : extensions
2828
py.extension_module(name,
2929
pyx,
3030
include_directories: [include_directories('.'), src],
31+
cython_args: ['-Wextra'],
3132
dependencies: [py_dep, threads_dep],
3233
install: true,
3334
subdir: 'cysignals'

src/cysignals/pysignals.pyx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,6 @@ cdef class containsignals:
441441
cdef sigset_t unblock
442442

443443
def __init__(self, signals=None):
444-
cdef int s
445444
if signals is None:
446445
self.signals = [s for s in range(1, 32) if s != SIGKILL and s != SIGSTOP]
447446
else:

src/cysignals/signals.pyx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,9 @@ cdef int sig_raise_exception "sig_raise_exception"(int sig, const char* msg) exc
198198
PyErr_Format(SystemError, "unknown signal number %i", sig)
199199

200200
# Save exception in cysigs.exc_value
201-
cdef PyObject* typ
202-
cdef PyObject* val
203-
cdef PyObject* tb
201+
cdef PyObject* typ = NULL
202+
cdef PyObject* val = NULL
203+
cdef PyObject* tb = NULL
204204
PyErr_Fetch(&typ, &val, &tb)
205205
PyErr_NormalizeException(&typ, &val, &tb)
206206
Py_XINCREF(val)
@@ -246,10 +246,10 @@ def sig_print_exception(sig, msg=None):
246246

247247
try:
248248
sig_raise_exception(sig, m)
249-
except BaseException as e:
249+
except BaseException:
250250
# Print exception to stdout without traceback
251251
import sys, traceback
252-
typ, val, tb = sys.exc_info()
252+
typ, val, _ = sys.exc_info()
253253
traceback.print_exception(typ, val, None, file=sys.stdout, chain=False)
254254

255255

src/cysignals/tests.pyx

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# cython: preliminary_late_includes_cy28=True
1+
# cython: preliminary_late_includes_cy28=True, show_performance_hints=False
22
"""
33
Test interrupt and signal handling
44
@@ -58,6 +58,12 @@ cdef extern from "<pthread.h>" nogil:
5858

5959

6060
cdef extern from *:
61+
"""
62+
#if defined(__GNUC__) && !defined(__clang__)
63+
// disable warning (variable might be clobbered by longjmp)
64+
#pragma GCC diagnostic ignored "-Wclobbered"
65+
#endif
66+
"""
6167
ctypedef int volatile_int "volatile int"
6268

6369

@@ -101,6 +107,9 @@ cdef void dereference_null_pointer() noexcept nogil:
101107
cdef volatile_int* ptr = <volatile_int*>(0)
102108
ptr[0] += 1
103109

110+
# disable warning (infinite recursion in stack_overflow)
111+
cdef extern from *:
112+
'#pragma GCC diagnostic ignored "-Winfinite-recursion"'
104113

105114
cdef int stack_overflow(volatile_int* x=NULL) noexcept nogil:
106115
cdef volatile_int a = 0
@@ -197,7 +206,7 @@ def subpython_err(command, **kwds):
197206
"""
198207
argv = [sys.executable, '-c', command]
199208
P = Popen(argv, stdout=PIPE, stderr=PIPE, universal_newlines=True, **kwds)
200-
(out, err) = P.communicate()
209+
(_, err) = P.communicate()
201210
sys.stdout.write(err)
202211

203212

@@ -249,7 +258,7 @@ def test_sig_str(long delay=DEFAULT_DELAY):
249258
signal_after_delay(SIGABRT, delay)
250259
infinite_loop()
251260

252-
cdef c_test_sig_on_cython() noexcept:
261+
cdef c_test_sig_on_cython():
253262
sig_on()
254263
infinite_loop()
255264

@@ -977,7 +986,7 @@ def test_sig_occurred_dealloc():
977986
No current exception
978987
979988
"""
980-
x = DeallocDebug()
989+
_ = DeallocDebug()
981990
sig_str("test_sig_occurred_dealloc()")
982991
abort()
983992

@@ -1155,9 +1164,8 @@ def sig_on_bench():
11551164
>>> sig_on_bench()
11561165
11571166
"""
1158-
cdef int i
11591167
with nogil:
1160-
for i in range(1000000):
1168+
for _ in range(1000000):
11611169
sig_on()
11621170
sig_off()
11631171

@@ -1171,9 +1179,8 @@ def sig_check_bench():
11711179
>>> sig_check_bench()
11721180
11731181
"""
1174-
cdef int i
11751182
with nogil:
1176-
for i in range(1000000):
1183+
for _ in range(1000000):
11771184
sig_check()
11781185

11791186

@@ -1277,7 +1284,7 @@ def test_thread_sig_block(long delay=DEFAULT_DELAY):
12771284
>>> test_thread_sig_block()
12781285
12791286
"""
1280-
cdef pthread_t t1, t2
1287+
cdef pthread_t t1 = 0, t2 = 0
12811288
with nogil:
12821289
sig_on()
12831290
if pthread_create(&t1, NULL, func_thread_sig_block, NULL):
@@ -1293,8 +1300,7 @@ def test_thread_sig_block(long delay=DEFAULT_DELAY):
12931300

12941301
cdef void* func_thread_sig_block(void* ignored) noexcept with gil:
12951302
# This is executed by the two threads spawned by test_thread_sig_block()
1296-
cdef int n
1297-
for n in range(1000000):
1303+
for _ in range(1000000):
12981304
sig_block()
12991305
if not (1 <= cysigs.block_sigint <= 2):
13001306
PyErr_SetString(RuntimeError, "sig_block() is not thread-safe")

0 commit comments

Comments
 (0)