diff options
author | Eric Wong <e@80x24.org> | 2022-08-20 22:55:05 +0000 |
---|---|---|
committer | Eric Wong <mwrap-public@80x24.org> | 2022-08-22 17:11:39 +0000 |
commit | 0f1880761db6b1c819887ba9541e78617d61802e (patch) | |
tree | cb202cf603d421817545adc7ae27a0d198669ab8 /ext/mwrap | |
parent | aa82056594757a75aa0f0b629a8b4612f523c5b0 (diff) | |
download | mwrap-0f1880761db6b1c819887ba9541e78617d61802e.tar.gz |
These warnings are already suppressed in similar ways in the Perl/XS port. The only warning which remains is related to cfree, which I'm leaving alone, for now, due to lack of use/test-cases: ../../../../ext/mwrap/mwrap.c:689:6: warning: ‘cfree’ specifies less restrictive attributes than its target ‘free’: ‘leaf’, ‘nothrow’ [-Wmissing-attributes] 689 | void cfree(void *) __attribute__((alias("free"))); | ^~~~~ /usr/include/stdlib.h:565:13: note: ‘cfree’ target declared here 565 | extern void free (void *__ptr) __THROW; | ^~~~
Diffstat (limited to 'ext/mwrap')
-rw-r--r-- | ext/mwrap/mwrap.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/ext/mwrap/mwrap.c b/ext/mwrap/mwrap.c index cd68eed..a097b2e 100644 --- a/ext/mwrap/mwrap.c +++ b/ext/mwrap/mwrap.c @@ -169,11 +169,18 @@ __attribute__((constructor)) static void resolve_malloc(void) --locating; } +#ifdef NDEBUG +#define QUIET_CC_WARNING(var) (void)var; +#else +#define QUIET_CC_WARNING(var) +#endif + static void mutex_lock(pthread_mutex_t *m) { int err = pthread_mutex_lock(m); assert(err == 0); + QUIET_CC_WARNING(err) } static void @@ -181,6 +188,7 @@ mutex_unlock(pthread_mutex_t *m) { int err = pthread_mutex_unlock(m); assert(err == 0); + QUIET_CC_WARNING(err) } #ifndef HAVE_MEMPCPY @@ -660,16 +668,14 @@ internal_memalign(void **pp, size_t alignment, size_t size, uintptr_t caller) static void * memalign_result(int err, void *p) { - if (caa_unlikely(err)) { + if (caa_unlikely(err)) errno = err; - return 0; - } return p; } void *memalign(size_t alignment, size_t size) { - void *p; + void *p = NULL; int err = internal_memalign(&p, alignment, size, RETURN_ADDRESS(0)); return memalign_result(err, p); } @@ -684,7 +690,7 @@ void cfree(void *) __attribute__((alias("free"))); void *valloc(size_t size) { - void *p; + void *p = NULL; int err = internal_memalign(&p, page_size, size, RETURN_ADDRESS(0)); return memalign_result(err, p); } @@ -702,7 +708,7 @@ void *valloc(size_t size) void *pvalloc(size_t size) { size_t alignment = page_size; - void *p; + void *p = NULL; int err; if (add_overflow_p(size, alignment)) { |