This uncommon way to use a boolean is not supported by gcc6. Instead of incrementing by 12 (huh?) just toggle between false and true. --- misc/test_dr.h 2013-11-10 13:13:35.000000000 +0100 +++ misc/test_dr.h 2016-09-12 04:52:08.334029901 +0200 @@ -93,13 +93,13 @@ { \ fprintf(stdout, " \"%s\" boolean check\n", #name); \ i_loop_count = 0; \ - s_decoded.name = 0; \ + s_decoded.name = false; \ do \ { #define BOZO_end_boolean(name) \ - s_decoded.name += 12; \ - } while(!i_err && (s_decoded.name <= 12)); \ + s_decoded.name = !s_decoded.name; \ + } while(!i_err && s_decoded.name); \ fprintf(stdout, "\r iteration count: %22llu", i_loop_count); \ if(i_err) \ fprintf(stdout, " FAILED !!!\n"); \