From: Daniel Gollub Date: Wed, 12 Feb 2014 14:51:54 +0000 (+0100) Subject: Make file.h C++ safe by casting fio_file_flags X-Git-Tag: fio-2.1.6~49 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=bea5c23dfb5166931ff476a483fd66d5e5b10601 Make file.h C++ safe by casting fio_file_flags Fixes for g++ (4.7.2) following compiler errors when fio.h gets included (e.g. in an external C++ ioengine): --8<--- [...] os/../file.h: In function ‘void fio_file_set_open(fio_file*)’: os/../file.h:142:1: error: invalid conversion from ‘int’ to ‘fio_file_flags’ [-fpermissive] os/../file.h: In function ‘void fio_file_clear_open(fio_file*)’: os/../file.h:142:1: error: invalid conversion from ‘int’ to ‘fio_file_flags’ [-fpermissive] os/../file.h: In function ‘void fio_file_set_closing(fio_file*)’: [...] --->8--- Signed-off-by: Daniel Gollub Signed-off-by: Jens Axboe --- diff --git a/file.h b/file.h index 19413fc8..c1d02a5b 100644 --- a/file.h +++ b/file.h @@ -128,11 +128,11 @@ struct fio_file { #define FILE_FLAG_FNS(name) \ static inline void fio_file_set_##name(struct fio_file *f) \ { \ - (f)->flags |= FIO_FILE_##name; \ + (f)->flags = (enum fio_file_flags) ((f)->flags | FIO_FILE_##name); \ } \ static inline void fio_file_clear_##name(struct fio_file *f) \ { \ - (f)->flags &= ~FIO_FILE_##name; \ + (f)->flags = (enum fio_file_flags) ((f)->flags & ~FIO_FILE_##name); \ } \ static inline int fio_file_##name(struct fio_file *f) \ { \