Officially the diagnostic pragma are supported starting in 4.6. [1] But they were present before 4.6 with limitation which we cannot honour easily.
[1] https://gcc.gnu.org/gcc-4.6/changes.html Signed-off-by: Jonathan Rajotte <jonathan.rajotte-jul...@efficios.com> --- lib/bitfield.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/bitfield.h b/lib/bitfield.h index ebbe754..a9e268b 100644 --- a/lib/bitfield.h +++ b/lib/bitfield.h @@ -29,8 +29,10 @@ /* * _bt_is_signed_type() willingly generates comparison of unsigned * expression < 0, which is always false. Silence compiler warnings. + * GCC versions lower than 4.6.0 do not accept diagnostic pragma inside + * functions. */ -#ifdef __GNUC__ +#if defined(__GNUC__) && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40600 # define _BT_DIAG_PUSH _Pragma("GCC diagnostic push") # define _BT_DIAG_POP _Pragma("GCC diagnostic pop") -- 2.17.1 _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev