adding do ... while(0) guards to statement macros