From bea5c23dfb5166931ff476a483fd66d5e5b10601 Mon Sep 17 00:00:00 2001 From: Daniel Gollub Date: Wed, 12 Feb 2014 15:51:54 +0100 Subject: [PATCH] Make file.h C++ safe by casting fio_file_flags MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- file.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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) \ { \ -- 2.25.1