On FreeBSD 10.1 with clang 3.4.1, a standard "gmake" build now fails with:
libfio.c:309:21: error: static_assert expression is not an integral
constant expression
compiletime_assert((offsetof(struct thread_stat,
percentile_list) % 8) == 0, "stat percentile_list");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:309:22: note: cast that performs the conversions of a
reinterpret_cast is not allowed in a constant expression
compiletime_assert((offsetof(struct thread_stat,
percentile_list) % 8) == 0, "stat percentile_list");
^
./flist.h:10:33: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
^
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:310:21: error: static_assert expression is not an integral
constant expression
compiletime_assert((offsetof(struct thread_stat,
total_run_time) % 8) == 0, "total_run_time");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:310:22: note: cast that performs the conversions of a
reinterpret_cast is not allowed in a constant expression
compiletime_assert((offsetof(struct thread_stat,
total_run_time) % 8) == 0, "total_run_time");
^
./flist.h:10:33: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
^
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:311:21: error: static_assert expression is not an integral
constant expression
compiletime_assert((offsetof(struct thread_stat,
total_err_count) % 8) == 0, "total_err_count");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:311:22: note: cast that performs the conversions of a
reinterpret_cast is not allowed in a constant expression
compiletime_assert((offsetof(struct thread_stat,
total_err_count) % 8) == 0, "total_err_count");
^
./flist.h:10:33: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
^
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:312:21: error: static_assert expression is not an integral
constant expression
compiletime_assert((offsetof(struct thread_stat,
latency_percentile) % 8) == 0, "stat latency_percentile");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:312:22: note: cast that performs the conversions of a
reinterpret_cast is not allowed in a constant expression
compiletime_assert((offsetof(struct thread_stat,
latency_percentile) % 8) == 0, "stat latency_percentile");
^
./flist.h:10:33: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
^
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:313:21: error: static_assert expression is not an integral
constant expression
compiletime_assert((offsetof(struct thread_options_pack,
zipf_theta) % 8) == 0, "zipf_theta");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:313:22: note: cast that performs the conversions of a
reinterpret_cast is not allowed in a constant expression
compiletime_assert((offsetof(struct thread_options_pack,
zipf_theta) % 8) == 0, "zipf_theta");
^
./flist.h:10:33: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
^
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:314:21: error: static_assert expression is not an integral
constant expression
compiletime_assert((offsetof(struct thread_options_pack,
pareto_h) % 8) == 0, "pareto_h");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:314:22: note: cast that performs the conversions of a
reinterpret_cast is not allowed in a constant expression
compiletime_assert((offsetof(struct thread_options_pack,
pareto_h) % 8) == 0, "pareto_h");
^
./flist.h:10:33: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
^
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:315:21: error: static_assert expression is not an integral
constant expression
compiletime_assert((offsetof(struct thread_options_pack,
percentile_list) % 8) == 0, "percentile_list");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:315:22: note: cast that performs the conversions of a
reinterpret_cast is not allowed in a constant expression
compiletime_assert((offsetof(struct thread_options_pack,
percentile_list) % 8) == 0, "percentile_list");
^
./flist.h:10:33: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
^
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:316:21: error: static_assert expression is not an integral
constant expression
compiletime_assert((offsetof(struct thread_options_pack,
latency_percentile) % 8) == 0, "latency_percentile");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
libfio.c:316:22: note: cast that performs the conversions of a
reinterpret_cast is not allowed in a constant expression
compiletime_assert((offsetof(struct thread_options_pack,
latency_percentile) % 8) == 0, "latency_percentile");
^
./flist.h:10:33: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
^
./compiler/compiler.h:39:59: note: expanded from macro 'compiletime_assert'
#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
^
8 errors generated.
--
Bruce
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html