From: Tomohiro Kusumi Date: Mon, 15 Jan 2018 19:52:10 +0000 (+0200) Subject: null: fix compile time warning on OpenBSD X-Git-Tag: fio-3.4~21 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=7746976c9230e7b3349ad27136b0cd8784f0c405;p=fio.git null: fix compile time warning on OpenBSD Fix the following warning on OpenBSD 6.2 (gcc 4.2.1). This can probably be silenced with void** argument and memcpy() too, but returning a non-void pointer is clearer IMO when the code also targets C++. Compiles with regular make/gmake as well as # g++ -O2 -g -shared -rdynamic -fPIC -o cpp_null null.c -DFIO_EXTERNAL_ENGINE -- CC engines/null.o engines/null.c: In function 'fio_null_init': engines/null.c:142: warning: dereferencing type-punned pointer will break strict-aliasing rules Signed-off-by: Tomohiro Kusumi Signed-off-by: Jens Axboe --- diff --git a/engines/null.c b/engines/null.c index 8a4d106b..47f29054 100644 --- a/engines/null.c +++ b/engines/null.c @@ -87,9 +87,9 @@ static void null_cleanup(struct null_data *nd) } } -static int null_init(struct thread_data *td, struct null_data **nd_ptr) +static struct null_data *null_init(struct thread_data *td) { - struct null_data *nd = (struct null_data *) malloc(sizeof(**nd_ptr)); + struct null_data *nd = (struct null_data *) malloc(sizeof(*nd)); memset(nd, 0, sizeof(*nd)); @@ -99,8 +99,7 @@ static int null_init(struct thread_data *td, struct null_data **nd_ptr) } else td->io_ops->flags |= FIO_SYNCIO; - *nd_ptr = nd; - return 0; + return nd; } #ifndef __cplusplus @@ -139,7 +138,9 @@ static void fio_null_cleanup(struct thread_data *td) static int fio_null_init(struct thread_data *td) { - return null_init(td, (struct null_data **)&td->io_ops_data); + td->io_ops_data = null_init(td); + assert(td->io_ops_data); + return 0; } static struct ioengine_ops ioengine = { @@ -172,7 +173,8 @@ static void fio_exit fio_null_unregister(void) struct NullData { NullData(struct thread_data *td) { - null_init(td, &impl_); + impl_ = null_init(td); + assert(impl_); } ~NullData()